如何在foreach迭代期间更改Set <String>中的字符串?

tsi*_*iki 3 java

我有一组字符串,我想迭代,并改变所有相等的东西,等于别的东西:

// Set<String> strings = new HashSet()
for (String str : strings) {
  if (str.equals("foo")) {
    // how do I change str to equal "bar"?
  }
}
Run Code Online (Sandbox Code Playgroud)

我试过replace()哪个不行.我也尝试删除"str"并添加所需的字符串,这会导致错误.我该怎么做呢?

duf*_*ymo 6

两点:

  1. 字符串是不可变的; 你不能"改变"一个字符串.您可以从Set中删除一个并将其替换为另一个,但这就是所有变化.
  2. 套装意味着"每个只有一个副本".什么是"改变所有"的东西?你为什么要迭代Set?为什么不这样做呢?

    strings.remove( "富");
    strings.add( "条");