我想通过提供一些范围来迭代java set。就像我可以为列表做..
//for list
int startRange=3;
int endRange = 5;
List list = myList();
for (int i=startRange;i<endRange;i++){
System.out.println(list.get(i));
}
现在我想在startRange和endRange
中迭代下面的java setSet<String> set = new java.util.HashSet<String>(list);
感谢。
答案 0 :(得分:3)
int count =0, min= 3 , max = 5;
Set<String> s = new HashSet<String>();
Iterator<String> itr = s.iterator();
while (itr.hasNext()) {
if ( count > min && count < max ) {
//Do something
}
count++;
}
答案 1 :(得分:2)
您可以使用LinkedHashSet
并维护订单。
答案 2 :(得分:0)
请参阅下面的my comment。
@alfasin是对的;
List
包含其元素的总排序,但HashSet
没有这样的东西...... PS你应该在原始代码中使用List.listIterator
。
话虽如此,其他类型Set
的内容类似于做强加总命令 - SortedSet
。存在类似的subSet
,以及具有类似功能的headSet
和tailSet
。这些也存在于NavigableSet
以及ceiling
,floor
等其他方法中。
请注意,这里的订单并不那么相似。 List
订单基本上是任意的,无论用户想要什么,而SortedSet
订单使用比较排序。
答案 3 :(得分:0)
答案 4 :(得分:0)
//You can change the Set to Array and then iterate over a range.
Set<Integer> set = new TreeSet<Integer>();
for (int i = 0; i <= 100; i++) {
set.add(i);
}
Object[] array = set.toArray();
for (Integer i = 0; i < 100; i++) {
System.out.print(array[i] + " ,");
}