比较列表元素的最佳方法

时间:2017-08-28 20:53:06

标签: java

我有一个字符串列表List<String> treeList。我想将列表的最后四个元素与每个相应元素的预定义字符串进行比较。这样做的最佳方式是什么?

我认为的一种方法是

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个元素。

2 个答案:

答案 0 :(得分:6)

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

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;
}

答案 1 :(得分:0)

如果您正在从List派生的字符串进行字符串比较,请首先确保List包含足够的元素,否则您将获得parseInt。在比较字符串时,最好确保检查的第一个值不为null,因此我也会将调用更改为.equals()......

IndexOutOfBoundsException