在LinkedList的LinkedList中获取最长LinkedList的最快方法是什么?

时间:2016-10-18 20:07:20

标签: java list linked-list

我的数据结构是列表列表,正是LinkedList<LinkedList<String>>

由于我有一些列表,我只想找到更大的列表。 什么是最快的方式?

2 个答案:

答案 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);

如果需要,您可以存储此结果,只需在添加/删除列表时更新它。请记住,如果列表是可变的,这会更脆弱。