java里iterator怎么获取当前元素?

我想查找到HashSet里面的某个元素然后改变它.
2024-12-26 15:15:47
推荐回答(3个)
回答1:

在循环里取

import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

public class $ {

    public static void main(String[] args) {

        Set data = new TreeSet();

        data.add("a");
        data.add("b");
        data.add("c");
        data.add("d");

        Iterator it = data.iterator();

        while (it.hasNext()) {
            String string = (String) it.next();

            System.out.println("当前元素:" + string);
        }
    }
}

回答2:

HashSet hs = ...
Iterator it = hs.iterator();
while(it.hasNext()){
Object obj = it.next();
...操作obj
}

注意:如果在迭代的过程中要删除某个元素不要用hs的remove()方法,而是用
it的remove()方法。

回答3:

建议你remove掉然后重新add,因为元素改了hashcode也改了,这样在hashset内部的位置要重新计算,你要是直接改元素的内容元素在hashset内部的位置不会变,后面使用的时候就会出问题