Java 遍历集合的数组列表

Java 遍历集合的数组列表,java,loops,iterator,iteration,Java,Loops,Iterator,Iteration,我目前正在尝试遍历包含字符串的集合的arraylist。看起来是这样的: 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); } } Arr

我目前正在尝试遍历包含字符串的集合的arraylist。看起来是这样的:

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);
        }
    }
ArrayList e=新的ArrayList(大小);
对于(int i=0;i
我正在尝试访问和修改集合中的字符串(事先打印以查看是否有效),但我找不到方法来访问它们。有什么想法吗?

ArrayList e=新的ArrayList(大小);
ArrayList<Set<String>> e = new ArrayList(size);
//Fill your sets with data here

for(Set<String> set : e) { //Iterate through the Arraylist getting every set
    for(String element : set) { //Iteretae through the current Set getting every String
        System.out.println(element);
    }
}
//在这里用数据填充你的集合 对于(Set:e){//遍历Arraylist获取每个集合 for(String-element:set){//iteretate通过当前集合获取每个字符串 系统输出打印项次(元素); } }
嘿,我可以帮助您访问部分,因此您应该使用这样的foreach循环

ArrayList<Set<String>> e = new ArrayList<Set<String>>();

    for (Set<String> oneSet : e) {

        for (String oneString : oneSet) {

            oneString
            //do something...
        }
    }
ArrayList e=新的ArrayList();
用于(一套一套:e){
for(字符串oneString:oneSet){
一串
//做点什么。。。
}
}

不能修改字符串;如果要更改
集合
s中的一个字符串,必须将其删除并添加新字符串

关于(简单)迭代:

for( var set : e )
{
  for( var string : set )
  {
     out.println( string );
  }
}
如果要更改数据结构的内容,请执行以下操作:

for( var set : e )
{
  Set<String> newStrings = new HashSet<>();
  for( var i = set.iterator(); i.hasNext(); )
  {
    var string = i.next();
    if( isInvalid( string ) )
    { 
      i.remove();
      newStrings.add( calculateNewString( string ) );
    } 
  }
  set.addAll( newStrings );
}
for(变量集:e)
{
Set newStrings=new HashSet();
for(var i=set.iterator();i.hasNext();)
{
var string=i.next();
if(isInvalid(字符串))
{ 
i、 删除();
add(calculateNewString(string));
} 
}
set.addAll(新闻字符串);
}

更改集合内容的唯一方法是删除或添加元素。你不能更改集合中的现有元素。你到底想做什么,你能给出一个输入输出示例吗?@YCF\u L说的正是我所想的。@Eran:当然你可以更改
集合
中的元素!但是,这个元素不能是不可变的(字符串是不可变的…),当更改会对
equals()
hashCode()
和/或最终比较器的比较方法的结果产生影响时,它可能会破坏集合的结构。因此,通常认为就地修改集合的元素是一个坏主意,但也有可能…@tquadrat我的意思是不能替换集合中的元素(不像列表中有一个
E集合(int index,E element)
方法来替换给定位置的元素)。