'2012/09'에 해당되는 글 1건

  1. 2012.09.05 Arrays.asList의 UnsupportedOperationException (1)


Array를 List로 만들 때 흔히 Arrays.asList( .. )를 사용했었는데 여기에는 큰 단점(?) 이 있다.

이렇게 만들어지는 List는 흔히 unmodifiable이라 하여 remove 및 add를 할 수 가 없다.

해서 사용되는 다른 대안이 있는데


1번은 remove/add에 이 같은 Exception이 발생하고

2번은 reference가 그대로 전해지는 스타일이고

3번은 copy이기 때문에 reference는 없어지지만 불필요하게 2개 생성되는 케이스가 될 수 있다.



public class ArraysTest {
	public static void main(String[] args) {
		String[] strArrays = {"a", "b", "c", "d", "f", "g", "h", "i"};
		// 1
		List strList = Arrays.asList(strArrays);
		// 2
		List strList = new ArrayList();
		Collections.addAll(strList, strArrays);
		// 3
		List strList = new ArrayList(Arrays.asList(strArrays));
		System.out.println(strList.remove(0));
	}
}
신고

'01.Java' 카테고리의 다른 글

Arrays.asList의 UnsupportedOperationException  (1) 2012.09.05
Apache Flume-NG structure  (0) 2012.07.18
JMX Url  (0) 2012.04.02
run Hadoop Mapreduce Job Remotely(Cluster)  (0) 2012.03.13
Exception Handling vs. Error Logging  (0) 2012.02.14
JUnit Test. 그리고 Stub, Mock  (0) 2011.12.27
Posted by Stewie


티스토리 툴바