본문 바로가기

ANDROID

[안드로이드] List나 Arraylist를 다룰 때의 사소한 주의점

MPAndroidChart 라이브러리르 사용하면서 Entry List (List<Entry>)를 사용해야되는 경우가 생겼는데


다양한 라인을 그려야되다 보니 Entry List의 List (List<List<Entry>>) 라는 다소 복잡해 보이는 리스트를 쓰게 되었다.


문제는 List<Entry>에 데이터들을 집어넣는데에는 문제가 없었는데 (ArrayList와 마찬가지로 .add() 사용) 


add가 끝난 List를 다시 List에 넣고 까보니 자료가 없는 것이었다.



중첩된 List를 쓰는게 문제였을까 싶었는데 해답은 간단했다.


List에 한 List를 넣고 나면 이를 clear()등을 써 재활용하는것이 아닌


완전히 new ArrayList<>(); 를 써 새 ArrayList를 만들어 더해준 뒤 다시 List에 넣어주어야


독립적인 객체로 할당이 되는 것이었다.



참고로 일반 ArrayList든 List를 담는 List든 선언은 그냥 모두 new ArrayList<>();를 사용하면 됨.