gpt4 book ai didi

java - 如何删除JAVA中Set的Arraylist中存储的某个集合中的元素?

转载 作者:行者123 更新时间:2023-12-02 00:23:57 27 4
gpt4 key购买 nike

我在删除 JAVA 中 Set 的 Arraylist 中存储的某个集合中的元素时遇到问题。

我的代码是这样的:

public class Classroom {

private ArrayList<Set<Integer>> arrSetSlot;
private Set<Integer> SetSlot;

public Classrom(){
arrSetSlot = new ArrayList();
}

public ArrayList<Set<Integer>> getHimpWaktu_tersedia() {
return arrSetSlot;
}

public void addSlotWaktu(int kromosom, int Slot){
arrSetSlot.get(kromosom).add(Slot);
}

public void addSlotWaktu(Set<Integer> SetSlot){
arrSetSlot.add(SetSlot);
}
}


public class Inisialisasi {
ArrayList<Classrom> arrClassroom;
Set<Integer> SetSlot;
Database d;

public Inisialisasi(){
arrClassroom=new ArrayList();
SetSlot=new HashSet();
d = new Database();
loadDatabase();
validasiData();
}

private void loadDatabase(){
for (int i=1;i<41;i++){
SetSlot.add(i);
}

rs=d.getData("select* from kelas");
try {
while(rs.next()){
Classroom kelas = new Classroom();
kelas.setIdKelas(rs.getString("id_kelas"));
kelas.setKodeKelas(rs.getString("kode_kelas"));
for(int i=0;i<3;i++){
kelas.addSlotWaktu(SetSlot);
}
arrKelas.add(kelas);
}
} catch (SQLException ex) {
Logger.getLogger(Inisialisasi.class.getName()).log(Level.SEVERE, null, ex);
}

}

private void validasiData(){
//the problematic remove
arrKelas.get(2).getHimpWaktu_tersedia().get(2).remove(1);
for (int i=0;i<arrKelas.get(1).getHimpWaktu_tersedia().size();i++){
System.out.println(arrKelas.get(1).getHimpWaktu_tersedia().get(i).size());
}
}
}

当我尝试使用此函数从数组中的某些集合中删除元素时:Classroom.getArrSetSlot.get(1).remove(1);

它不仅从第一个集合中删除元素“1”,而且从数组列表中的所有集合中删除元素“1”..

这个问题有什么解决办法吗?谢谢

最佳答案

嗯,

public void addSlotWaktu(Set<Integer> SetSlot){
arrSetSlot.add(SetSlot);
}

应该是

public void addSlotWaktu(Set<Integer> SetSlot){
arrSetSlot.add(new HashSet<Integer>(SetSlot));
}

假设您想要在插槽中获得该组的新独立副本。

关于java - 如何删除JAVA中Set的Arraylist中存储的某个集合中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10404968/

27 4 0