如何从HashSet打印出ArrayList <integer> <arraylist <integer>&gt;?</arraylist <integer> </integer>

时间:2013-12-12 08:45:33

标签: java hashset

我有HashSet<ArrayList<Integer>>。其印刷格式为:

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

现在,如果我只想打印出最后Array<Integer> [111, 222],我该怎么做? indexOf()是否有HashSet的类似方法?

5 个答案:

答案 0 :(得分:3)

您不能因为Set内没有订单,因此没有索引。所以你的“最后”元素并不总是一样的。如果您需要它们,可以使用LinkedHashSet

或者您遍历Set的所有元素并找到您想要打印的那个元素。

答案 1 :(得分:1)

HashSet中的元素不以任何定义的顺序存储。因此,询问HashSet的“last”元素是没有意义的。

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

如果需要有序集,请使用TreeSet。

答案 2 :(得分:0)

HashSet无法维护订单,因此您无法将indexOf()等API与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

答案 3 :(得分:0)

不,但你可以迭代到最后一个元素并打印出来:

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);
...

答案 4 :(得分:0)

您可以迭代到最后一个元素并仅打印最后一个元素。

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