일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- spring
- 자바 ORM 표준 JPA 프로그래밍
- Real MySQL
- 토비의 스프링 정리
- GC
- 쿠버네티스
- 백준
- K8s
- JPA
- thread
- Java
- Stream
- OS
- 이스티오
- redis
- jvm
- 스프링
- Collection
- MSA
- Stack
- IntellJ
- gradle
- 자바
- 토비의 스프링
- list
- 보조스트림
- SpringBoot
- mysql
- 스트림
- Kotlin
- Today
- Total
목록ArrayList (2)
인생을 코딩하다.

ArrayList add() 동작방식 ArrayList는 내부에서 elementData 배열을 기반으로 구성되어 있다. 생성자를 통해서 직접 element 배열의 capacity 설정이 가능하다. 기본 Capacity는 10이다. ArrayList의 기본 생성자를 사용할 경우 elementData에 EMPTY_ELEMENTDATA (빈 Object 배열)을 할당한다. add()의 내부구조 modCount++로 구조적으로 변경된 횟수를 카운트한다. add(e, elementData, size); 위의 로직을 살펴보자. 두 번째 파라미터는 오브젝트형 배열을 인자로 받고있고, 세 번째 파라미터는 int형 정수(size)를 받고있다. s와 elementDate의 길이를 비교하여 배열의 사이즈를 조정해야 하는지 ..

List는 Collection 인터페이스를 확장하였다. 따라서, 몇몇 추가된 메소드를 제외하고는 Collection에 선언된 메소드와 큰 차이는 없다. Collection을 확장한 인터페이스와 다른 인터페이스와 List 인터페이스의 가장 큰 차이점은 배열처럼 '순서' 가 있다는 것이다. List 인터페이스를 구현한 클래스들중에서 java.util 패키지에서는 ArrayList, Vector, Stack, LinkedList를 많이 사용한다. ArrayList와 Vector 클래스의 사용법은 거의 동일하고 기능도 거의 비슷하다. 이 두 클래스는 "확장 가능한 배열" 이라고 생각하면 된다. 차이점은 Vector은 Thread safe하고, ArrayList는 Thread safe하지 않다. /* Vector..