我的数据结构是列表列表,正是LinkedList<LinkedList<String>>
由于我有一些列表,我只想找到更大的列表。 什么是最快的方式?
答案 0 :(得分:2)
Java中的LinkedList
类包含您在典型链接列表中通常不具备的操作。一个案例是能够在size()
对象上调用LinkedList
。这是因为该类继承自AbstractCollection
接口。因此,你可以这样做,找到最大的清单:
int largest = -1;
LinkedList<String> largestLinkedList = null;
for (LinkedList<String> ll : listOfLinkedLists) {
if (ll.size() > largest) {
largestLinkedList = ll;
largest = ll.size();
}
}
答案 1 :(得分:2)
计算:
int maxSize = listOfLists.stream().map(Collection::size).max(Integer::compare).orElse(0);
(或获取列表本身)
List<String> max = listOfLists.stream().max((l1, l2) -> Integer.compare(l1.size(), l2.size())).orElse(null);
如果需要,您可以存储此结果,只需在添加/删除列表时更新它。请记住,如果列表是可变的,这会更脆弱。