형식의 목록이 있습니다.
ArrayList<Integer> list = new ArrayList();
루프에서 다양한 요소를 추가하고 제거합니다. 그러나 나중에 액세스 할 수 있도록 임시 목록을 저장할 수있는 구조가 필요합니다.
예를 들어 System.out.print (list)를 수행하면
[1,2,3,4]
그런 다음 store.add (list)와 같은 것을 호출해야하며 목록에 다른 요소를 추가하면-list.add (5)
[1,2,3,4,5]
then again
store.add(list)
System.out.print (store)를 호출하면
[1,2,3,4]
[1,2,3,4,5]
즉, store는 list within list와 비슷해야합니까?
동일한 목록의 여러 버전 을 원한다고 가정 합니다.
List of List 만 있으면 얻을 수 없습니다.
목록은 그 안에 저장된 구성원 목록에 대한 참조 만 저장합니다. 따라서 목록을 편집하면 모든 이전 버전도 편집됩니다. 씬 뒤에서 동일한 목록입니다.
를 사용하는 올바른 방법 List<List<Integer>>
은 다음과 같습니다.
List<List<Integer>> store = new ArrayList<>(); // Create storage for versions
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4));
store.add(new ArrayList<>(list)); // Add list's copy to store.
list.add(5); // Edit it as you want.
store.add(new ArrayList<>(list)); // Add list's copy to store.
System.out.println(store); // Print all versions
산출:
[[1, 2, 3, 4], [1, 2, 3, 4, 5]]
도움이 되었기를 바랍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다