标签: foreach

在迭代和从ArrayList中删除元素时,如何避免java.util.ConcurrentModificationException

我有一个我想迭代的ArrayList.迭代它时,我必须同时删除元素.显然这会抛出一个java.util.ConcurrentModificationException.

处理此问题的最佳做法是什么?我应该先克隆列表吗?

我删除不在循环本身但是代码的另一部分的元素.

我的代码看起来像这样:

public class Test() {
    private ArrayList<A> abc = new ArrayList<A>();

    public void doStuff() {
        for (A a : abc) 
        a.doSomething();
    }

    public void removeA(A a) {
        abc.remove(a);
    }
}
Run Code Online (Sandbox Code Playgroud)

a.doSomething可能打电话Test.removeA();

java foreach arraylist

185
推荐指数
11
解决办法
31万
查看次数

Linq风格"For Each"

可能重复:
Linq相当于IEnumerable的foreach

是否有"For each"操作的Linq样式语法?

例如,将基于一个集合的值添加到另一个集合,已存在的集合:

IEnumerable<int> someValues = new List<int>() { 1, 2, 3 };

IList<int> list = new List<int>();

someValues.ForEach(x => list.Add(x + 1));
Run Code Online (Sandbox Code Playgroud)

代替

foreach(int value in someValues)
{
  list.Add(value + 1);
}
Run Code Online (Sandbox Code Playgroud)

.net c# linq foreach

182
推荐指数
5
解决办法
36万
查看次数

使用C++ 11基于范围的正确方法是什么?

使用C++ 11基于范围的正确方法是for什么?

应该使用什么语法?for (auto elem : container),for (auto& elem : container)或者for (const auto& elem : container)?还是其他一些?

c++ foreach c++11

182
推荐指数
3
解决办法
7万
查看次数

如何将for-each循环应用于String中的每个字符?

所以我想迭代字符串中的每个字符.

所以我认为:

for (char c : "xyz")
Run Code Online (Sandbox Code Playgroud)

但是我收到编译错误:

MyClass.java:20: foreach not applicable to expression type
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

java string foreach loops char

176
推荐指数
7
解决办法
38万
查看次数

为什么我在这个例子中没有得到java.util.ConcurrentModificationException?

注意:我知道这个Iterator#remove()方法.

在下面的代码示例中,我不明白为什么List.removein main方法抛出ConcurrentModificationException,而不是remove方法中.

public class RemoveListElementDemo {    
    private static final List<Integer> integerList;

    static {
        integerList = new ArrayList<Integer>();
        integerList.add(1);
        integerList.add(2);
        integerList.add(3);
    }

    public static void remove(Integer toRemove) {
        for(Integer integer : integerList) {
            if(integer.equals(toRemove)) {                
                integerList.remove(integer);
            }
        }
    }

    public static void main(String... args) {                
        remove(Integer.valueOf(2));

        Integer toRemove = Integer.valueOf(3);
        for(Integer integer : integerList) {
            if(integer.equals(toRemove)) {                
                integerList.remove(integer);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java foreach list concurrentmodification

173
推荐指数
5
解决办法
27万
查看次数

关联数组对象的Javascript foreach循环

为什么我的for-each循环不会迭代我的JavaScript关联数组对象?

// defining an array
var array = [];

// assigning values to corresponding keys
array["Main"] = "Main page";
array["Guide"] = "Guide page";
array["Articles"] = "Articles page";
array["Forum"] = "Forum board";

// expected: loop over every item,
// yet it logs only "last" assigned value - "Forum"
for (var i = 0; i < array.length; i++) {
    console.log(array[i]);
}
Run Code Online (Sandbox Code Playgroud)

编辑:jQuery each()可能会有所帮助:https://api.jquery.com/jQuery.each/

javascript arrays foreach

167
推荐指数
4
解决办法
30万
查看次数

转到javascript forEach循环中的"next"迭代

如何进入Javascript Array.forEach()循环的下一次迭代?

例如:

var myArr = [1, 2, 3, 4];

myArr.forEach(function(elem){
  if (elem === 3) {
    // Go to "next" iteration. Or "continue" to next iteration...
  }

  console.log(elem);
});
Run Code Online (Sandbox Code Playgroud)

我真的很惊讶这不是一个问题 - 所以搜索没有任何结果,与建议的答案一样.MDN文档只提到完全打破循环,而不是转向下一次迭代.

javascript foreach

167
推荐指数
3
解决办法
11万
查看次数

std :: for_each优于for循环的优点

std::for_eachfor循环有什么优点吗?对我来说,std::for_each似乎只是阻碍了代码的可读性.为什么有些编码标准推荐使用?

c++ foreach stl coding-style

158
推荐指数
9
解决办法
11万
查看次数

使用$ .each对Json数据进行jquery循环

我在一个名为data的变量中返回了以下JSON.

这是回归的JSON ......

[ 
{"Id": 10004, "PageName": "club"}, 
{"Id": 10040, "PageName": "qaz"}, 
{"Id": 10059, "PageName": "jjjjjjj"}
]
Run Code Online (Sandbox Code Playgroud)

我试图使用$ .each遍历集合,但我遇到的问题是警报显示未定义.我尝试了很多不同的语法,但似乎无法解决这个问题.

我正在使用的JQuery是

$.each(data, function(i, item) {
    alert(item.PageName);
});
Run Code Online (Sandbox Code Playgroud)

任何人都可以指出我正确的方向吗?

编辑 这是我用来获取数据的代码

$.getJSON('/Cms/GetPages/123', null, function(data) {
  fillSelect(data);
});
Run Code Online (Sandbox Code Playgroud)

这是在回叫时调用的函数

function fillSelect(data) {
  alert(data);
  $.each(data, function(i, item) {
    alert(item.PageName);
  });
}
Run Code Online (Sandbox Code Playgroud)

编辑2 这有点令我困惑,根据它应该工作的文档,但它没有.根据提琴手的标题显示: -

Content-Type: application/json; charset=utf-8
Run Code Online (Sandbox Code Playgroud)

并且JSON在上面完全正确.如果这有任何不同,我正在使用chrome.将在IE和FF中测试....

编辑3

使用$ .get生成

"[\r\n {\r\n \"Id\": 10041,\r\n \"PageName\": \"01234567890\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n },\r\n {\r\n \"Id\": 10001,\r\n \"PageName\": \"about\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 1\r\n },\r\n {\r\n \"Id\": …
Run Code Online (Sandbox Code Playgroud)

foreach jquery json

154
推荐指数
4
解决办法
63万
查看次数

Python foreach等价

我正在深入研究Python,我对foreach迭代有疑问.我是Python的新手,我在C#方面有一些经验.所以我想知道,如果我的集合中的所有项目都有Python中的等效函数用于迭代,例如

pets = ['cat', 'dog', 'fish']
marks = [ 5, 4, 3, 2, 1]
Run Code Online (Sandbox Code Playgroud)

或类似的东西.

python foreach

154
推荐指数
6
解决办法
22万
查看次数