Java 如何比较存储在ArrayList中的对象属性?
我创建了一个方法,将一些对象保存在mainActivity的ArrayList中。 保存哪些对象是通过变量“category”控制的 完成后,我想将ObjectsDEGR属性“box”与数字1、2和3进行比较,并据此将对象划分为3个新的ArrayList 1)如何仅比较对象属性“box”?我仅通过ArrayList中的索引获取对象,但目的不是将整个对象与数字进行比较。 mainActivity中的相关方法:Java 如何比较存储在ArrayList中的对象属性?,java,android,arraylist,compare,Java,Android,Arraylist,Compare,我创建了一个方法,将一些对象保存在mainActivity的ArrayList中。 保存哪些对象是通过变量“category”控制的 完成后,我想将ObjectsDEGR属性“box”与数字1、2和3进行比较,并据此将对象划分为3个新的ArrayList 1)如何仅比较对象属性“box”?我仅通过ArrayList中的索引获取对象,但目的不是将整个对象与数字进行比较。 mainActivity中的相关方法: private void writeToArrayList(int categor
private void writeToArrayList(int category){
ArrayList<ObjektsDEGR> catchAllBoxes = new ArrayList<>();
for (int j = ((category-1)*nV); j < nV+((category-1)*nV); j++) {
catchAllBoxes.add(basicDEGR[j]);
}
ArrayList<ObjektsDEGR> box1Filtered = new ArrayList<>();
ArrayList<ObjektsDEGR> box2Filtered = new ArrayList<>();
ArrayList<ObjektsDEGR> box3Filtered = new ArrayList<>();
for (int j = ((category-1)*nV); j < nV+((category-1)*nV); j++){
if (catchAllBoxes.get(j).equals(1)) {
box1Filtered.add(catchAllBoxes.get(j));
}
else if (catchAllBoxes.get(j).equals(2)) {
box2Filtered.add(catchAllBoxes.get(j));
}
else if (catchAllBoxes.get(j).equals(3)) {
box3Filtered.add(catchAllBoxes.get(j));
}
else {
box3Filtered.add(catchAllBoxes.get(j));
}
}
}
您可以尝试实现类似的接口:
public class ObjektsDEGR implements Serializable, Comparable<ObjektsDEGR>{
嘿,谢谢你的建议。通过使用这个接口,我能够为这个问题创建一个解决方案。
public class ObjektsDEGR implements Serializable, Comparable<ObjektsDEGR>{
@Override
public int compareTo(ObjektsDEGR o) {
if(this.getBox() < o.getBox()) {
return -1;
}else if(this.getBox() > o.getBox()) {
return 1;
}else{
return 0;
}
}
Collections.sort(box1Filtered);