01/10/2018, 08:15

Vấn đề thêm phần tử vào queue trong java

Mình có 1 class Inf gồm 3 phần tử và 1 PriorityQueue. Mình muốn thêm n phần tử kiểu Inf vào queue thông qua 1 biến trung gian “temp”
Nhưng mỗi lần thêm là queue chỉ add địa chỉ của biến chứ không thêm giá trị biến. Mình muốn hỏi là có cách nào để mỗi lần thêm là queue nhận giá trị thay vì địa chỉ.

class Inf{
    public int x,val,prev;
    
}
class Cmp implements Comparator<Inf>{
    @Override
    public int compare(Inf inf1,Inf inf2){
        if(true){
            return 1;
        }
        if(inf2.val<inf1.val){
            return 1;
        }
        else if(inf2.val==inf1.val){
            return 0;
        }
            return -1;
    }
}
public class Ex {
    
    Inf temp=new Inf(); 
    void Dijkstra(){        
        Cmp cmp=new Cmp();
        Queue qu=new PriorityQueue(cmp);
        
        temp.x=1;
        
        for(int i=0;i<5;i++){
            temp.val=i;            
            qu.add(temp);
        }
}
}
Mato Nguyen viết 10:17 ngày 01/10/2018

Mình nghĩ mỗi lần thêm thì tạo một đối tượng mới nhỉ

public class Ex {
    Inf temp; 
    void Dijkstra(){        
        Cmp cmp=new Cmp();
        Queue qu=new PriorityQueue(cmp);
        
        temp.x=1;
        
        for(int i=0;i<5;i++){
            temp=new Inf();
            temp.val=i;            
            qu.add(temp);
        }
    }
}
Bài liên quan
0