Java中Set集合怎样用for遍历?

Python014

Java中Set集合怎样用for遍历?,第1张

增强型的for循环 和普通for循环一样

增强型的for循环 优点主要体现在集合中,随便举个例子

比如对 set 的遍历

一般是迭代遍历:

Set<String>set = new HashSet<String>()

Iterator<String>it = set.iterator()

while (it.hasNext()) {

String str = it.next()

System.out.println(str)

}

for循环遍历:

for (String str : set) {

System.out.println(str)

}

是不是简单些?

优点还体现在泛型 假如 set中存放的是Object

Set<Object>set = new HashSet<Object>()

for循环遍历:

for (Object obj: set) {

if(obj instanceof Integer){

int aa= (Integer)obj

}else if(obj instanceof String){

String aa = (String)obj

}

........

}

唯一的缺点就是 在遍历 集合过程中,不能对集合本身进行操作

for (String str : set) {

set.remove(str)//错误!

}

//按照你思路很明显无法得到99的,for内的i=99时,且将要结束FOR循环时i还要++所以结果会是100.参考ForTest1

//i的作用域只在for的话,只能把它赋值给另一个变量作用域超出FOR的才可以.参考ForTest2

public class ForTest1 {

int getFor() {

int i

for (i = 0i <100i++) {

}

return i

}

public static void main(String[] args) {

ForTest1 t = new ForTest1()

System.out.println(t.getFor())

}

}

public class ForTest2 {

static int n

void setFor() {

for (int i = 0i <100i++) {

n = i

}

}

int getFor(){

return n

}

public static void main(String[] args) {

ForTest2 t = new ForTest2()

t.setFor()

System.out.println(t.getFor())

}

}

一般是通过迭代期获取数据,因为set集合无序,所以输出不是顺序输出

import java.util.HashSet

import java.util.Iterator

import java.util.Set

public class Test{

    public static void main(String[] args) {

        // 初始化set集合

        Set<String> set = new HashSet<>()

        set.add("1")

        set.add("2")

        set.add("3")

        // 获取set集合数据

        for (Iterator iterator = set.iterator() iterator.hasNext()) {

            String string = (String) iterator.next()

            System.out.println(string)

        }

        

    }

}