☕ Java
List와 ArrayList의 모든 요소 가져오는 방법 3가지.
1. for문 List l = List.of("abc", "def", "ghi", "jkl"); for (int i = 0; i < l.size(); i++) { System.out.println(l.get(i)); } 2. 향상 된 for문 List l = List.of("abc", "def", "ghi", "jkl"); for (String s : l) { System.out.println(s); } 3. Iterator List l = List.of("abc", "def", "ghi", "jkl"); Iterator lIter = l.iterator(); while (lIter.hasNext()) { System.out.println(lIter.next()); } // List.of는 불변성을 가지..
ArrayList와 Vector의 차이?
ArrayList vs LinkedList vs Vector ArrayList와 Vector의 차이? Vector의 메소드들은 대부분 동기화가 되어 있다. 스레드가 안전하다는 뜻. 다중 스레드에서 데이터를 공유하는 상황에서 Vector를 사용할 수 있지만 안전한 만큼 성능 저하 발생. ArrayList의 메소드들은 대부분 동기화가 되어 있지 않다. 안전하진 않지만 빠른 성능을 보여준다.
ArrayList와 LinkedList의 차이?
ArrayList vs LinkedList vs Vector ArrayList와 LinkedList의 차이? ArrayList와 Vector의 기본 데이터 구조는 배열. LinkedList의 기본 데이터 구조는 Doubly LinkedList인 LinkedList. 데이터 구조, 배열은 원하는 요소를 바로바로 가져오기 쉽다. 하지만 배열의 가운데에서 추가, 삭제등을 한다면..? 새 배열을 만들어서 처리하는 등, 복잡하고 효율적이지 않다. 예를들어 [1, 2, 4, 5]가 있고 2와 4사이에 3을 추가해야 한다면 1. [1, 2] 뒤에 3을 추가한 뒤 [4, 5]를 만들어서 더하는 방법 2. 새 배열을 만들어 [1, 2] 추가 후 3 추가, [4, 5]추가 등 효율적이지 못하다. 장점 : 원하는 값을 바로..
불변성 / 가변성을 특징으로 갖는 것들
불변성 String, BigDecimal, Wrapper, List.of(), Map.of() 등.. 으로 만든다면 불변성을 가진다. 인스턴스를 만든 순간 부터 값을 바꿀 수 없다. 가변성 ArrayList, LinkedList, Vector 등.. 으로 만들면 가변성을 가진다. 값을 추가하거나 삭제가 가능하다.