你好@所有我有这个问题我有two arraylist ta,ta1
ta是一个1D arraylist
在每个帧中包含许多字符串对象我只有一个对象我想要一个新的ArrayList
ta1
女巫从{{1}中的ta中选取两个或更多个对象我们得到的情况
1with2 2with3 3with4 ....
例如我有n=2
ta [aa,bb,cc,dd]
ta1将是[aabb,bbcc,ccdd]
我试过这个
n=2;
但它给了我标题中的错误 坦克提前帮助
答案 0 :(得分:2)
首先i<=ta.size()
是错误的,因为ta
的有效索引从0变为ta.size()-1
。
其次,在您的while循环中,您假设e+i
是ta
中的有效索引,这也是您不首先测试e+i<ta.size()
时无法做出的假设。
首先你应该移动
int n=Integer.parseInt(tt.getText());
在for循环之前。
这样,改变
for (int i=0;i<=ta.size();i++)
到
for (int i=0;i<=ta.size()-n;i++)
将确保e+i<ta.size()
。
您还应该在正确的位置重置相关变量。我认为这应该有效:
int n = Integer.parseInt(tt.getText());
for (int i=0;i<=ta.size()-n;i++){
int c = n;
String m = "";
int e = 0 ;
while(c>0){
String t=(ta.get(e+i));
m=m+t;
e++;
c--;
}
ta1.add(m);
}
t3.setText(ta1.toString());
答案 1 :(得分:1)
for (int i=0;i<=ta.size();i++){
ArrayList
是一个基于0的索引集合。这意味着您从0
转到size - 1
。目前,您正从0
转到size
,这导致了IndexOutOfBoundsException
。