JAVA循环,list问题,求解

qq_33741040 2016-01-14 01:22:36
for (int i = 0; i < cLine.length; i++) { //循环长度为2
line = ReadTxtConfig.commaSplitStr(cLine[i], ",");
items.setItem(line[0]); //1009,1010 2个值
}
list.add(items);
list.add 放在里面就会输出1010,1010
list.add 放外面输出1010
请问我怎么把1009和1010都输出出来啊。
...全文
183 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hqq1007 2016-01-14
  • 打赏
  • 举报
回复
引用 6 楼 qq_33741040 的回复:
[quote=引用 5 楼 hqq1007 的回复:] 明白了。 Items items = new Items(); 你把这句放在for循环中
感谢感谢[/quote] 不客气 list中add的是对象的引用,最后还是指向内存中的同一块区域。 第二次修改了1010,第一次的值也就修改了。
qq_33741040 2016-01-14
  • 打赏
  • 举报
回复
引用 5 楼 hqq1007 的回复:
明白了。 Items items = new Items(); 你把这句放在for循环中
感谢感谢
hqq1007 2016-01-14
  • 打赏
  • 举报
回复
明白了。 Items items = new Items(); 你把这句放在for循环中
qq_33741040 2016-01-14
  • 打赏
  • 举报
回复
引用 3 楼 hqq1007 的回复:
[quote=引用 2 楼 qq_33741040 的回复:]
[quote=引用 1 楼 hqq1007 的回复:]

for (int i = 0; i < cLine.length; i++) {
line = ReadTxtConfig.commaSplitStr(cLine[i], ",");
for(int j = 0; j<line.length(); j++) {
items.setItem(line[i]);
list.add(items);
}
}


不行啊,cLine.length 有2行值,比如 (1,2,3,4,5)(7,8,9,10,11) , line拆分了cLine, for (int i = 0; i < cLine.length; i++)有2次循环System.out.println(line[0]); 有2个值为1和7保存到items.setitem中,第一个2值会被第二个覆盖,怎么保存下来了?[/quote]

不明白你想要的是什么效果,简单写了个例子,就是将二维数据中的值放在list中,你参考一下

int[][] a={{1,2,3,4,5},{4,5,6,7,8,9}};
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < a.length; i++) {
int[] arr = a[i];
for (int j = 0; j < arr.length; j++) {
list.add(arr[j]);
}
}
[/quote]



不好意思,我没说明白
cLine 为


Items items = new Items();
for (int i = 0; i < cLine.length; i++) {
System.out.println(cLine[i]);
//1009,1,1,2,100,1,1,30,10,12,20
//1010,1,1,2,100,1,1,30,10,12,20
// 按照逗号进行切割
String line[] = ReadTxtConfig.commaSplitStr(cLine[i], ",");
System.out.println(cline[0]); //会输出1009,1010
items.setItem(line[0]);
list.add(items);
}
return list;
public static void main(String args[]){
List list = xxx.xx();
for(Items items : list){
System.out.println(items.getItem()); //我想输出1009 和1010,但是list.add(items);放for里面会输出1010,1010;放外面只会输出1010
}
}

不知道我说明白没?
hqq1007 2016-01-14
  • 打赏
  • 举报
回复
引用 2 楼 qq_33741040 的回复:
[quote=引用 1 楼 hqq1007 的回复:]

for (int i = 0; i < cLine.length; i++) {  
    line = ReadTxtConfig.commaSplitStr(cLine[i], ",");
    for(int j = 0; j<line.length(); j++) {
        items.setItem(line[i]);
        list.add(items);
    }
}
不行啊,cLine.length 有2行值,比如 (1,2,3,4,5)(7,8,9,10,11) , line拆分了cLine, for (int i = 0; i < cLine.length; i++)有2次循环System.out.println(line[0]); 有2个值为1和7保存到items.setitem中,第一个2值会被第二个覆盖,怎么保存下来了?[/quote] 不明白你想要的是什么效果,简单写了个例子,就是将二维数据中的值放在list中,你参考一下

int[][] a={{1,2,3,4,5},{4,5,6,7,8,9}};
List<Integer> list = new ArrayList<Integer>();
    for (int i = 0; i < a.length; i++) {
        int[] arr = a[i];
        for (int j = 0; j < arr.length; j++) {
            list.add(arr[j]);
	 }
    }
qq_33741040 2016-01-14
  • 打赏
  • 举报
回复
引用 1 楼 hqq1007 的回复:

for (int i = 0; i < cLine.length; i++) {  
    line = ReadTxtConfig.commaSplitStr(cLine[i], ",");
    for(int j = 0; j<line.length(); j++) {
        items.setItem(line[i]);
        list.add(items);
    }
}
不行啊,cLine.length 有2行值,比如 (1,2,3,4,5)(7,8,9,10,11) , line拆分了cLine, for (int i = 0; i < cLine.length; i++)有2次循环System.out.println(line[0]); 有2个值为1和7保存到items.setitem中,第一个2值会被第二个覆盖,怎么保存下来了?
hqq1007 2016-01-14
  • 打赏
  • 举报
回复

for (int i = 0; i < cLine.length; i++) {  
    line = ReadTxtConfig.commaSplitStr(cLine[i], ",");
    for(int j = 0; j<line.length(); j++) {
        items.setItem(line[i]);
        list.add(items);
    }
}

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧