java list 循环赋值_Java List集合的坑(add方法报空指针,循环赋值时list已保存的值会改变)...
先看空指針異常:
ListmovieInfos= null;
這樣創建時,list指向為空,修改方法:
ListmovieInfos= new ArrayList();
再看list循環賦值的問題:
問題描述:
for (i=0;i<10;i++){
movieInfoSum.movieId = (int)recommendation.get(i).getItemID();
movieInfoSum.movieName = movieInfos.get(i).getMovieName();
movieInfoSum.movieType = movieInfos.get(i).getMovieType();
movieInfoSum.value = recommendation.get(i).getValue();
movieInfoSums.add(movieInfoSum);
}
這段代碼在每一次循環時,都會將新的數值賦值到已保存的list中,比如,
第一個循環結束后:
數據正常加入,進行第二個循環過程中:
List movieInfoSums中已存入的下標0的值改變了,經過蒙逼半天后查找資料(https://blog.csdn.net/single_cong/article/details/80560616),發現是因為值類型和引用類型沒區分好的問題
修改方法:
for (i=0;i<10;i++){
MovieInfoSum movieInfoSum = new MovieInfoSum();//將對象創建語句放在循環內
movieInfoSum.movieId = (int)recommendation.get(i).getItemID();
movieInfoSum.movieName = movieInfos.get(i).getMovieName();
movieInfoSum.movieType = movieInfos.get(i).getMovieType();
movieInfoSum.value = recommendation.get(i).getValue();
movieInfoSums.add(movieInfoSum);
}
總結:1,List創建時不置空,2,將對象傳入List時要new新的對象。
總結
以上是生活随笔為你收集整理的java list 循环赋值_Java List集合的坑(add方法报空指针,循环赋值时list已保存的值会改变)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 摩罗丹多少钱一盒啊?
- 下一篇: 《一粒红尘》结局是什么 剧中各人物结局揭