[英]Java Comparator - Comparing 2 different objects in list
I have following class in Java, and I want to compare the tocompare
objects in list with the previous tocompare
object ie compare t2
to t1
. 我在Java中有以下课程,我想将list中的
tocompare
对象与之前的tocompare
对象进行比较, tocompare
t2
与t1
比较。
I am new to Java, so I don't have much knowledge about How to do this. 我是Java的新手,所以我对如何做到这一点并不了解。
public class ToCompare {
private String property1;
private String property2;
public void getProperty1(){
return property1;
}
public void setProperty1(String property1){
this.property1 = property1;
}
public void getProperty2(){
return property2;
}
public void setProperty1(String property2){
this.property2 = property2;
}
}
List<ToCompare> tocompare = new ArrayList();
ToCompare t1 = new ToCompare();
ToCompare t2 = new ToCompare();
ToCompare t3 = new ToCompare();
ToCompare t4 = new ToCompare();
tocompare.add(t1); //obj1
tocompare.add(t2); //obj2
tocompare.add(t3); //obj3
tocompare.add(t4); //obj4
for (String comp : tocompare) {
// compare properties of 2nd ToCompare object with 1st ToCompare object
}
Use Comparable interface and implement the compareTo method which defines the comparison strategy - https://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html 使用Comparable接口并实现compareTo方法,该方法定义比较策略-https: //docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html
For example, if you want to compare them based on property1
- 例如,如果您要根据
property1
比较它们-
public class ToCompare implements Comparable<ToCompare> {
private String property1;
private String property2;
public void getProperty1(){
return property1;
}
public void setProperty1(String property1){
this.property1 = property1;
}
public void getProperty2(){
return property2;
}
public void setProperty1(String property2){
this.property2 = property2;
}
@Override
public int compareTo(ToCompare toCompare){
return this.getProperty1().compareTo(i.getProperty1());
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.