List集合add后还是空

gaara_defy 2016-12-14 04:39:52
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ListAddTest {


public static void main(String[] args) {
List<Object> list = new ArrayList<Object>();
dealList(list);
System.out.println(list);

}

public static List<Object> dealList(List<Object> list){
if(null == list || list.size()==0){
list = new ArrayList<Object>();
Map<Object, Object> map1 = new HashMap<Object, Object>();
list.add(map1);
}
Map<Object, Object> map2 = new HashMap<Object, Object>();
map2.put("id", "139219");
list.add(map2);
return list;
}

}



我在dealList方法里对list进行了add,但最终list还是变成空的了,求大神帮忙解答下是什么原因
...全文
820 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhisheng_blog 2016-12-15
  • 打赏
  • 举报
回复
Ccoo1993 2016-12-15
  • 打赏
  • 举报
回复
你的System.out.println(list);要打印的是你new的一个list集合,当然是空的啦!要想有数据打印你的dealList(list)方法啊
  • 打赏
  • 举报
回复
自由自在_Yu 2016-12-15
  • 打赏
  • 举报
回复
peixiaofu 2016-12-15
  • 打赏
  • 举报
回复
参数是基于值得传递,你的有返回值。不过map你可以这样写
南苍 2016-12-15
  • 打赏
  • 举报
回复
去掉list.size()==0即可
Rap&篮球 2016-12-14
  • 打赏
  • 举报
回复
回去看看啥叫局部变量
逆光生命线 2016-12-14
  • 打赏
  • 举报
回复
引用 1 楼 u012934325 的回复:
你打印的list 是你在main方法中创建的 他本来就是一个空的 当然打印出来是空的了
上面是正解.修改一:方法中不new集合;方法二:方法不必传参,直接主函数接收方法获得的集合.
lipengzhu 2016-12-14
  • 打赏
  • 举报
回复
引用 3 楼 qq_26508409 的回复:
dealList(list);改成list=dealList(list);
正解
nikyotensai 2016-12-14
  • 打赏
  • 举报
回复
dealList(list);改成list=dealList(list);
戴小码 2016-12-14
  • 打赏
  • 举报
回复
1.main函数里将输出改成print(delaylist(list))
2.在delaylist函数中既然传递得是主函数中创建得list对象,就没必要在这里再创建一个对象了。
3.想答应list中的内容,请用forearch语句遍历。
墨笙弘一 2016-12-14
  • 打赏
  • 举报
回复

你打印的list 是你在main方法中创建的 他本来就是一个空的 当然打印出来是空的了

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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