【发布时间】:2020-06-23 03:43:03
【问题描述】:
我目前正在尝试遍历包含字符串的集合数组列表。它看起来像这样:
ArrayList<Set<String>> e = new ArrayList<Set<String>>(Size);
for(int i = 0; i < e.size(); i++) {
for(Object obj: e) {
System.out.println(e);
}
}
我正在尝试访问和修改集合内的字符串(事先打印以查看它是否有效),但我找不到找到它们的方法。有什么想法吗?
【问题讨论】:
-
改变集合内容的唯一方法是删除或添加元素。您不能更改 Set 的现有元素。
-
你到底想做什么,你能展示一个输入输出的例子吗?
-
@YCF_L 说出了我的想法。
-
@Eran:当然您可以更改
Set中的元素!但是这个元素不能是不可变的(字符串是不可变的……),当更改会对equals()、hashCode()和/或最终比较器的比较方法产生影响时,它可能会杀死你的集合结构体。因此,就地修改集合的元素通常被认为是一个坏主意——但有可能…… -
@tquadrat 我的意思是你不能替换 Set 中的元素(不像 List 中你有一个
E set(int index, E element)方法来替换给定位置的元素)。
标签: java loops iterator iteration