이미 존재하는 ArrayList가 있을 때 해당 list의 0번째 인덱스에 새로운 값을 넣고
기존 값들은 1칸씩 뒤로 밀고 싶을 때 사용하면 좋은 방법
가장 중요한 포인트는 기존 리스트를 clear 후에 addAll을 해 줘야 새로운 리스트 값으로 제대로 복사된다는 점이다
1) 기존 ArrayList 구조
2) 원하는 ArrayList 구조
'통합검색'을 기존 기스트의 0번째 인덱스에 넣고 싶음
3) 방법 확인
1) 기존 리스트와 동일한 구조의 리스트를 새로 만든다
2) 새로운 리스트에 원하는 데이터를 add 한다
3) 새로운 리스트에 기존 데이터를 addAll 한다
4) 기존 리스트를 clear 한다
5) 기존 리스트에 새로운 리스트를 addAll 한다
// 기존 리스트
ArrayList<Folder> list = ... // 기존 리스트를 조회하는 로직
// 0번째에 넣고자 하는 데이터
Folder folder = ... // 폴더 데이터를 조회하는 로직
// 기존 리스트와 동일한 형태의 리스트 생성
ArrayList<Folder> newList = new ArrayList<>();
// 새로운 리스트에 0번째 인덱스에 넣고자 하는 데이터를 넣음
newList.add(folder);
// 기존 리스트를 새로운 리스트에 추가 (0번째에는 데이터가 있으므로 1번째 인덱스에서부터 쌓임)
newList.addAll(list);
// 기존 리스트 데이터 삭제
list.clear();
// 새로운 리스트의 데이터를 기존 리스트에 추가
list.addAll(newList);
4) 실패한 방법들 확인
// 기존 리스트 데이터를 클리어(삭제)하지 않고 그대로 덮어씌웠을 때는 적용되지 않음
newList.add(folder);
newList.addAll(list);
list = newList;
// 기존 데이터를 클리어(삭제)하고 그대로 할당했을 때는 리스트가 빈 것으로 나옴
newList.add(folder);
newList.addAll(list);
list.clear();
list = newList;