我有HashSet<ArrayList<Integer>>
。其印刷格式为:
[ [1, 2], [11, 22], [111, 222] ]
现在,如果我只想打印出最后Array<Integer>
[111, 222]
,我该怎么做? indexOf()
是否有HashSet
的类似方法?
答案 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。