簡體   English   中英

我如何打印出一個ArrayList <Integer> 從HashSet <ArrayList<Integer> &gt;?

[英]How do I print out an ArrayList<Integer> from a HashSet<ArrayList<Integer>>?

我有一個HashSet<ArrayList<Integer>> 其打印格式為:

[ [1, 2], [11, 22], [111, 222] ]

現在,如果我只想打印最后一個[111, 222] Array<Integer> ,該怎么做? HashSet是否有與indexOf()類似的方法?

您不能,因為Set內沒有順序,因此也沒有索引。 因此,您的“最后一個”元素並不總是相同的。 如果需要它們,可以使用LinkedHashSet

或者,您可以遍歷Set的所有元素,然后找到要打印的元素。

HashSet中的元素不會以任何定義的順序存儲。 因此,詢問HashSet的“最后一個”元素沒有任何意義。

如果需要有序集,請使用LinkedHashSet。

如果需要排序集,請使用TreeSet。

HashSet不維持秩序,所以你將無法使用API如indexOf()HashSet 您需要使用List代替Set來獲取indexOf()最后一個元素。

    List<ArrayList<Integer>> list = new ArrayList<ArrayList<Integer>>();
    // Add elements in the list

    list .indexOf(list.size()-1); // This will fetch you the last element

不,但是您可以迭代到最后一個元素並打印:

Iterator i = set.iterator();
List last = null;
while(i.hasNext()) 
   last = i.next();
...

或者,您可以將集合轉換為列表並獲取最后一個元素:

List list = new ArrayList(set);
List last = list.get(list.size() - 1);
...

您可以迭代到最后一個元素,然后僅打印最后一個。

最好的方法是使用TreeSet而不是HashSet。

暫無
暫無

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

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