在Java 8中,以下哪项更好?
Java 8:
joins.forEach(join -> mIrc.join(mSession, join));
Run Code Online (Sandbox Code Playgroud)
Java 7:
for (String join : joins) {
mIrc.join(mSession, join);
}
Run Code Online (Sandbox Code Playgroud)
我有很多可以用lambdas"简化"的for循环,但使用它们真的有什么好处吗?它会改善他们的性能和可读性吗?
编辑
我还将这个问题扩展到更长的方法.我知道你不能从lambda中返回或破坏父函数,在比较它们时也应该考虑到这一点,但还有什么需要考虑的吗?
什么ArrayIndexOutOfBoundsException
意思,我该如何摆脱它?
以下是触发异常的代码示例:
String[] name = { "tom", "dick", "harry" };
for (int i = 0; i <= name.length; i++) {
System.out.println(name[i]);
}
Run Code Online (Sandbox Code Playgroud) 我正在学习Android
,Java
我已经创建了一个类,让我们这样说
class x(){
public int a;
public string b;
}
Run Code Online (Sandbox Code Playgroud)
然后我启动这个类的列表,然后像这样添加值到它的属性
public ArrayList<x> GetList(){
List<x> myList = new ArrayList<x>();
x myObject = new x();
myObject.a = 1;
myObject.b = "val1";
mylist.add(x);
y myObject = new y();
myObject.a = 2;
myObject.b = "val2";
mylist.add(y);
return myList;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何循环访问GetList()返回的内容
我试过了
ArrayList<x> list = GetList();
Iterator<x> iterator = list.iterator();
Run Code Online (Sandbox Code Playgroud)
但我不知道这是不是这样做的正确方法,加上我不知道接下来要做什么我在迭代器上添加了一个断点,但它似乎是空的,列表有值思考
如果你的问题是我java.lang.ArrayIndexOutOfBoundsException
在我的代码中得到了一个,我不明白为什么会发生这种情况.它是什么意思,我该如何避免它?
这是关于这个主题的最全面的Canonical信息集合
java.lang.ArrayIndexOutOfBoundsException
以及java.lang.IndexOutOfBoundsException
.
有很多像这样的问题,所有这些都有模糊的没有代码答案,或者大多数都非常具体,并且局限于手头的问题,并没有解决在所有情况下完全相同的根本原因.
如果您看到属于此一般情况的一个,而不是使用更多重复的专门内容回答它,请将其标记为此副本的副本.