Java 比较列表元素的最佳方法

Java 比较列表元素的最佳方法,java,Java,我有一个字符串列表列表树列表。我想将最后四个元素的列表与每个元素的预定义字符串进行比较。最好的方法是什么 我认为一种方法是 String firstParent = treeList.get(treeList.size() - 1); String secondParent = treeList.get(treeList.size() - 2); String thirdParent = treeList.get(treeList.size() - 3); String fourthParent

我有一个字符串列表
列表树列表
。我想将最后四个元素的列表与每个元素的预定义字符串进行比较。最好的方法是什么

我认为一种方法是

String firstParent = treeList.get(treeList.size() - 1);
String secondParent = treeList.get(treeList.size() - 2);
String thirdParent = treeList.get(treeList.size() - 3);
String fourthParent = treeList.get(treeList.size() - 4);

if(firstParent.equals("a") && secondParent.equals("b") && thirdParent.equals("c") && fourthParent.equals("d")) {
     return true;
}

有没有更少的打字方法?列表比较可以是2、3或4个元素。

您可以获取一个子列表,并将其与您自己的值列表进行比较:

List<String> expected = Arrays.asList("a", "b", "c", "d");
List<String> actual = treeList.subList(treeList.size() - 4, treeList.size());
if (actual.equals(expected)) {
    return true;
}
List expected=Arrays.asList(“a”、“b”、“c”、“d”);
List actual=treeList.subList(treeList.size()-4,treeList.size());
if(实际值等于(预期值)){
返回true;
}

您可以获取一个子列表,并将其与您自己的值列表进行比较:

List<String> expected = Arrays.asList("a", "b", "c", "d");
List<String> actual = treeList.subList(treeList.size() - 4, treeList.size());
if (actual.equals(expected)) {
    return true;
}
List expected=Arrays.asList(“a”、“b”、“c”、“d”);
List actual=treeList.subList(treeList.size()-4,treeList.size());
if(实际值等于(预期值)){
返回true;
}

如果要从列表中派生的字符串进行字符串比较,请首先确保列表中有足够的元素,否则会出现
IndexOutOfBoundsException
。在比较字符串时,最好确保检查的第一个值不为null,因此我也会将调用更改为.equals()


如果(treeList.size()>=4&&“a”.equals(第一父项)&“b”.equals(第二父项)&“c”.equals(第三父项)&“d”.equals(第四父项)){
//等等。。。
}

如果要对从列表中派生的字符串进行字符串比较,请首先确保列表中有足够的元素,否则会出现
索引AutofBoundsException
。在比较字符串时,最好确保检查的第一个值不为null,因此我也会将调用更改为.equals()


如果(treeList.size()>=4&&“a”.equals(第一父项)&“b”.equals(第二父项)&“c”.equals(第三父项)&“d”.equals(第四父项)){
//等等。。。
}

因为您想将最后4个元素与不同的字符串进行比较,所以我想说,任何压缩代码的尝试都会使代码实际上更难阅读,甚至更糟。我要说的是,保持这种天真的方式。因为你想将最后4个元素与不同的字符串进行比较,我要说的是,任何压缩代码的尝试都会使它实际上更难阅读,甚至更糟。我要说的是保持这种天真的方式。如果
treeList.size()-4
返回负值怎么办?@NikolasCharalambidis你为什么问我?Ask OP.treeList.size()-4不能为负数。这是通过调用函数来保证的。如果
expected.size()
为3,则将抛出IndexOutOfBoundsException。@NikolasCharalambidis与OP的方法一样。显然这不是问题。如果
treeList.size()-4
返回负值怎么办?@NikolasCharalambidis你为什么问我?Ask OP.treeList.size()-4不能为负数。这是通过调用函数来保证的。如果
expected.size()
为3,则将抛出IndexOutOfBoundsException。@NikolasCharalambidis与OP的方法一样。显然,这不是一个问题。