package com.wwl.generic;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class set集合遍历 {
public static void main(String[] args) {
Set<String> set = new HashSet<>();
set.add("a");
set.add("b");
set.add("c");
set.add("d");
System.out.println(set);
getSet1(set);
getSet2(set);
getSet3(set);
getSet4(set);
}
//1.使用collection中的toArray()方法遍历
public static void getSet1(Set<String> set) {
Object[] arr = set.toArray();
for (int i = 0; i < arr.length; i++) {
String s = (String) arr[i];
System.out.println(s);
}
}
//2.使用collection中的toArray(T[] t)方法遍历
public static void getSet2(Set<String> set) {
String[] arr1 = new String[set.size()];
arr1 = set.toArray(arr1);
for (int i = 0; i < arr1.length; i++) {
System.out.println("----" + arr1[i]);
}
}
//3.使用迭代器遍历
public static void getSet3(Set<String> set) {
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String next = it.next();
System.out.println(next);
}
}
//4.使用增强for循环(forEach)遍历.
public static void getSet4(Set<String> set) {
for (String s : set) {
System.out.println("======" + s);
}
}
/*
* 注意:
* 1.forEach,底层还是迭代器,只不过使用这种格式更加简洁.
* 2.使用增强for,并没有拿到元素的索引,无法修改集合或者数组中的元素值.
* 3.因为底层依然是迭代器,所以自遍历的时候,使用集合对象增减元素,会发生并发修改异常.
*
*/
}