在List中的所有项目之间添加项目的最简单方法是什么?
例如,字符串列表
{"1", "2", "3"}
变为
{"1", ",", "2", "," "3"}
修改1
我的第一次天真的尝试崩溃并烧毁了HARD(不要这样做):
for (int i=0; i < list.size(); i++) {
if(i==0) continue;
if(i==list.size()) continue;
list.add(i, new String(","));
}
答案 0 :(得分:2)
您有一种非常功能方式来思考您的问题。这就是我要做的事情:
// use ArrayList, it is very easy to handle and comes with all necessary methods as Payam already said
ArrayList<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
// this is the actual solution:
for (int i = 1; i < list.size(); i += 2) {
list.add(i, ",");
}
// and this is just for testing (printing) the list
for (String s : list) {
System.out.print("'"+s + "' ");
}
预期结果将是:
'1' ',' '2' ',' '3'
所以,你循环浏览你的清单
首先:您的索引i
从1开始(您不想在第一个元素之前添加任何)。
然后而不是将索引递增1(i++
)而是将其递增2(i+=2
)。这样,您的索引就会指向列表中的每个偶数位置。
最后您希望使用add(index, value)
将新值(此处为,
)添加到指定位置的列表中。添加新值以定位任何位置将移动列表中的以下元素&#34;一个位于左侧&#34;。它们不会被覆盖(仅移动到另一个索引),您仍然可以从头到尾循环列表,因为您不关心它是否大小增长。
答案 1 :(得分:0)
为什么不使用ArrayList,更容易添加和删除项目。
添加:
ArrayList<Integer> arrlist = null;
arrlist.add(0, 2);
....
卸下:
arrlist.remove(index);