케이스윔의 개발 블로그

[JAVA] new ArrayList(); vs Lists.newArrayList(); 뭘 써야할까? 본문

Study

[JAVA] new ArrayList(); vs Lists.newArrayList(); 뭘 써야할까?

kswim 2022. 2. 16. 21:43

1.  new ArrayList();

ArrayList 클래스의 생성자 내부는 아래와 같다.

public ArrayList() {
	this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
}

 

2. Lists.newArrayList();

Lists 클래스의 Lists.newArrayList(); 을 사용하면 결국 내부에서 new ArrayList(); 를 호출한다.

public static <E> ArrayList<E> newArrayList() {
	return new ArrayList();
}

Guava 코드(Guava는 구글이 작성한 자바 오픈소스 라이브러리)

https://github.com/google/guava/blob/65f6b4f4b132a051616403bcf74e4034a19d92a1/guava/src/com/google/common/collect/Lists.java#L86

 

GitHub - google/guava: Google core libraries for Java

Google core libraries for Java. Contribute to google/guava development by creating an account on GitHub.

github.com

 

결국 두가지는 근본적으로 같고, newArrayList(); 를 사용한다면 복잡한 generic type일 경우 쓰지 않아도 된다는 장점이 있다.

List<Map<X,List<Y>> list = new ArrayList<Map<X,List<Y>>();
List<Map<X,List<Y>> list = Lists.newArrayList();

newArrayList(); 는 다음과 같이 활용할 수 있는데 나는 주로 이런 경우에 java.util의 Arrays.asList(); 를 활용했던 것 같다.

List<String> list = Lists.newArrayList("one","another", null, "one_more")
List<String> list = Arrays.asList("one","another", null, "one_more")

 

결론: 본인의 취향에 따라 아무거나 쓰는 것으로!

Comments