어제 겪었던 오류 해결 및 기능적 보완
알고리즘 풀이
Arrays.asList
보다 Collections.singletonList
을 추천하는 이유.Arrays.asList > Arrays.asList
는 Arrays
내부에 구현된 ArrayList
를 생성해서 반환한다. 값을 변경할 수는 있지만 List
의 크기를 변경하는 메서드를 오버라이드 하지 않는다. 즉, 크기가 고정되어있어 add
나 remove
호출 시 UnsupportedOperationException
이 발생한다.
Collections.singletonList > Collections
의 내부 클래스인 SingletonList
를 생성해서 반환한다. 지정된 단일 객체를 가르키는 주솟값을 가지기 때문에 불변으로 크기가 1로 고정되어 있어 수정 또한 불가능하다. 원소를 하나만 전달했을 시 메모리를 더 효율적으로 사용하므로 Collections.singletonList
를 사용할 것을 권장한다.
값 및 구조적 변경 시 UnsupportedOperationException
이 발생한다.
.get().get()
의 방식을 사용하진 못했고, 리스트의 요소를 String
으로 변환한 후 .split()
으로 원하는 값만 얻는 방식이다. 역시나 비효율적이지만 기능적으로는 돌아간다.해결
1.
public void orderStart(ArrayList orderList) { int sum = 0; for (int i = 0; i < orderList.size(); i++) { String str = orderList.get(i).toString(); String[] array = str.split(","); String numberStr = array[1].trim(); int price = Integer.parseInt(numberStr); sum += price; } System.out.println("총액 : " + sum); System.out.println(); }
바퀴가 없거나 혹은 네모난 모양이지만 어떻게 굴러는 간다.