마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Arraylist 에서 add 할때 마지막값으로 덮어씌워지는 현상 질문입니다

0 추천
for(int i=1; i <= allsize; i+=10){
     all[c] = new All();
     mPremiumList.clear();

     if(pre_size != 0){
          if(pre_order < pre_size){
       
            mPremiumList.add(premiumArrayList.get(pre_order));
           pre_order++;
           }
     }

        
         all[c].setPremiumItemsInSection(mPremiumList);
     mAllList.add(all[c]);
     c++;
}

여기서 mAllList.add 를 할때 넣는값이 for문 돌때마다 달라지고요, add하면 사이즈는 증가하는데 마지막 넣은 값으로 모든 아이템값들이 들어갑니다..

All 객체를 배열없이 for문안에

All all = new All();

이렇게 해서 사용해봤는데요,
add에서 덮어쓰기이슈의 모든 해법은
반복문 안에서 객체생성이었는데
이렇게해봐도 mAllList 는 항상 모든아이템이 마지막값으로 전부 들어가있네요
흠 놓친부분이 있을까요.?
파르네제 (2,030 포인트) 님이 2018년 7월 17일 질문

1개의 답변

0 추천
 
채택된 답변
리스트 clear()메소드를 반복문 바깥으로 빼야하지않나요?? 반복작업할때마다 리스트 지우고 넣고 지우고 넣고가 반복되서 결국은 마지막값만 넣어지는 형태로 보입니다! 도움이 되길바랍니다~즐코하십셔~화이팅!
idontknow (6,380 포인트) 님이 2018년 7월 17일 답변
파르네제님이 2018년 7월 22일 채택됨
clear부분을 new 로 아예 객체 새로생성을 하니 잘 되네요,,
콜 오브 레퍼런스에 대한 이해가 없어서 생긴 문제였어요 자바공부좀 더 해야겠네요..ㅎㅎ 답변 감사합니다.!
...