我想比较两个包含两个不同类的实例的数组列表。
例如: 第一份名单:HKY SGP 15:00 3 20:20 700
第二名单:1 HKY SGP 8:00
因此,如果第一个列表包含单词 HKY 和 SGP,则需要返回值 700。 这两者都在一个称为成本的单独类别中进行比较。我使用 main 方法将数组列表传递给这个成本类。然后,该成本类继续比较数组列表。
我尝试过的: 我用谷歌搜索了这个问题并尝试使用他们提供的一些解决方案。 我尝试过使用 contains 或 equal。它给了我一个不正确的值。
然后我尝试使用两个类的 get 方法进行比较。它也没有给出所需的输出。
我认为我错误地比较了这两个对象,不确定如何比较。有人可以阐明如何比较数组列表中的这些对象吗?
谢谢!
主代码:
ArrayList<planes> air = new ArrayList<>();
ArrayList<questions> q = new ArrayList(); // same as below for questions
Scanner sc = new Scanner(System.in);
num = sc.nextInt();
for (int i=0; i<num; i++){
planes p = new planes();
p.setfrom(sc.next());
p.setTo(sc.next());
p.setdT(sc.next());
p.setaD(sc.next());
p.setaT(sc.next());
p.setCt(sc.next());
air.add(p);
}
最佳答案
编写自定义Comparator<T>
做你需要做的事。
也许两者的正则表达式都可以做到:
// two Strings both contain "foo"
return x.matches("[foo]") && y.matches("[foo]");
如果正则表达式无法做到这一点,请实现您自己的 Knuth-Morris-Pratt 匹配器:
关于java - 将两个数组列表与包含类的实例进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18785291/