[Java] List Clear()에 대해서

🏃‍♀️·2023년 8월 25일

Java [이론]

목록 보기
8/14

list.clear()

List의 모든 요소를 삭제한다.

map에 String, List<String> 형식으로 값을 넣을 때 List객체 생성에 대한 공부

List<String> list = new ArrayList<String>();
Map<String, List<String>> map = new HashMap<String, List<String>>();

list.add("a");
list.add("b");

map.put("list", list);
list.clear();

System.out.println(map.get("list"));

[]

List<String> list = new ArrayList<String>();
Map<String, List<String>> map = new HashMap<String, List<String>>();

list.add("a");
list.add("b");

map.put("list1", list);
list.clear();

list.add("c");
list.add("d");
map.put("list2", list);

System.out.println("list1: " + map.get("list1"));
System.out.println("list2: " + map.get("list2"));

list1: [c, d]
list2: [c, d]

list를 clear()로 값을 다 지웠다고 생각하고 다른 객체로 바라본다면 경기도 오산,,~!

map.get(key)로 value를 가져올 때 주소값을 바라보며 map에 값을 넣을 때의 값이 아닌 현재 값을 가져오므로 배열이 빈 값으로 가져와진다.


clear() 대신 new 객체 생성을 사용하자.

List<String> list = new ArrayList<String>();
Map<String, List<String>> map = new HashMap<String, List<String>>();

list.add("a");
list.add("b");

map.put("list1", list);
list = new ArrayList<String>();
		
list.add("c");
list.add("d");
map.put("list2", list);

System.out.println("list1: " + map.get("list1"));
System.out.println("list2: " + map.get("list2"));

list1: [a, b]
list2: [c, d]

또한 clear()를 사용하는 것보다 new를 사용하여 객체를 생성하는 것이 속도면에서도 효율적이다.

0개의 댓글