Java中Set的遍历

例如
Set set=new HashSet<>();
在对象是L的情况下,我认为最简单的遍历方式为:

1.for循环遍历

for(L t:set){
//对t进行操作
}

例:

for(String t:set){
    System.out.println(t);
}

使用这种遍历方式而不使用i号元素查找是因为HashSet为无序集合,存储和取出的顺序不同,没有索引。

2.迭代遍历

Set<L> set = new HashSet<>();
Iterator<L> it = set.iterator();
while (it.hasNext()) {
L myobject = it.next();
//对myobject进行操作
}

3.Set转化为List的方式

除以上两种方法之外,还可以采用将Set转化为List的方式进行遍历,较为易懂。
例:

List<String> list = new ArrayList<String>();
Iterator<String> it = set.iterator(); 
while(it.hasNext()){  //遍历Set
list.add(it.next().toString()); //Set转化List
}
Iterator<String> it2 = list.iterator();
while(it2.hasNext()){  //遍历List
//对List进行操作
}

有关Set:

1.Set集合介绍

Set继承于Collection接口,是一个不允许出现重复元素,并且无序的集合。
可以通过元素的equals方法,来判断是否为重复元素。

2.HashSet

此类实现了Set接口,由哈希表(实际是HashMap实例)支持。它不保证Set的迭代顺序,特别是它不保证该顺序恒久不变。
特点:不允许出现重复因素;允许插入null值;元素无序(添加顺序和遍历顺序不一致);线程不安全,若2个线程同时操作HashSet,必须通过代码实现同步。

3.对象的哈希值

如果没有重写父类,每次运行的结果都是不同的整数;如果子类重写父类的方法,哈希值可由我们自定义;其为存储到HashSet的依据。

你可能感兴趣的:(java)