我的列表如下所示,因为这包括 AbcConSch 的许多重复字段值
List<AbcConSch> asBeanList= tbCondition.getAbcConScheds();
AbcConSch abcSchedule = asBeanList.get(i);
这个列表有一个包含数据元素的包,所以我需要获取带有字段 value="ConditionCode"条件的 lastindexof() asBeanList。
我尝试使用以下代码来获取值
i == asBeanList.lastIndexOf(abcSchedule.getSrConditionCode().contains(SC_CONDITION_CODE_ABC))
感谢您提前提供的帮助和支持。 阿伦
最佳答案
您可以实现自己的 lastIndexOf()
方法,并让它采用表达式进行匹配:
public static <E> int lastIndexOf(List<E> list, Predicate<E> predicate) {
for (ListIterator<E> iter = list.listIterator(list.size()); iter.hasPrevious(); )
if (predicate.test(iter.previous()))
return iter.nextIndex();
return -1;
}
测试
List<String> list = Arrays.asList("AA", "BB", "ABC", "CC");
System.out.println(lastIndexOf(list, s -> s.contains("AA")));
System.out.println(lastIndexOf(list, s -> s.contains("A")));
System.out.println(lastIndexOf(list, s -> s.contains("BB")));
System.out.println(lastIndexOf(list, s -> s.contains("B")));
System.out.println(lastIndexOf(list, s -> s.contains("CC")));
System.out.println(lastIndexOf(list, s -> s.contains("C")));
System.out.println(lastIndexOf(list, s -> s.contains("DD")));
输出
0
2
1
2
3
3
-1
对于您的代码,您可以像这样使用它:
List<AbcConSch> asBeanList = tbCondition.getAbcConScheds();
int i = lastIndexOf(asBeanList, a -> a.getSrConditionCode().contains(SC_CONDITION_CODE_ABC));
关于java - 带条件获取数组列表的最后一个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59871663/