簡體   English   中英

從 SortedSet 在 Java 中創建一定大小的列表

[英]Create list of certain size in Java from SortedSet

我有一個TreeSet實現的SortedSet ,我經常通過new ArrayList<>(mySortedSet)將其轉換為列表,然后執行subList(myList, 3)或任何其他數量的元素。

如何避免在創建新列表時使用subList ,並且僅在一個 go 中從SortedSet中獲取所需元素的ArrayList 將 Java 11 與番石榴一起使用。

ImmutableList.copyOf(Iterables.limit(sortedSet, 3));

這應該就是你所需要的—— Iterables.limit是重要的部分。

對於您可以使用的三個最小元素

Iterator<E> it = mySortedSet.iterator();
ArrayList<E> = Lists.newArrayList(it.next(), it.next(), it.next());

這看起來很 hacky,因為它取決於 arguments 的評估順序(在 Java 中得到保證)。 當集合更小時它也會吹。 我並不是真的在寫它時推薦它,但你明白了。

但是,當您只需要這三個元素時,您可以使用PriorityQueue或 Guava 的Comparators.least(int, Comparator)

僅使用 Java:

List<E> list = sortedSet.stream().limit(3).collect(Collectors.toList());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM