일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- class-transformer
- Mac
- JavaScript
- Spring
- Java
- 인텔리제이
- svn
- 프로젝트 여러 개
- @RequestBody
- oracle
- 프로그래머스
- node.js
- REST
- datagrip 한글깨짐
- Aspect
- flutter mac 설치
- maven
- MySQL
- tecoble
- DART
- eqauls-hashcode
- SQL
- db
- InteliJ
- Stream
- 코어자바스크립트
- TypeScript
- 봤어요처리
- javascript error
- ojdbc6
- Today
- Total
개발자가 되고 싶은 개발자
[Java] ArrayList 본문
안녕하세요, 오늘은 egoing님의 강의를 참고하여,
배열과 리스트의 특징을 동시에 갖는, ArrayList의 사용법에 대해서 알아보겠습니다.
Collections Farmework
(컬렉션즈 프레임워크)
ArrayList를 말씀드리기 앞서, 컬렉션즈 프레임 워크에 대해 살펴보겠습니다.
컬렉션즈 프레임워크는 컬렉션(Collection)과 맵(Map)으로 나눠집니다.
컬렉션은 다시 Set, List, Queue로 나눠집니다.
눈치채셨듯이, 자료구조를 공부할 때 많이 보셨던 용어들입니다.
컬렉션은 자바에서 자료구조를 구현한 클래스들을 칭하는 용어입니다.
저희가 알아볼 ArrayList는 List에 속합니다.
(정확하게는 ArraList등의 클래스에 의해 List인터페이스가 구현되는 것입니다.)
컬렉션즈 프레임워크는 프레임워크라고 하지만 라이브러리 형식으로 작동됩니다.
How To?
우선 아래에서 말씀드릴 주의사항을 위해 , 제네릭을 사용하지 않고 말씀드리겠습니다.
먼저 아래와 같이 import 하셔야 합니다.
1
|
import java.util.ArrayList;
|
배열과 다르게 new 연산자를 이용하여 ArrayList의 인스턴스를 변수안에 담아주어야 합니다.
다음과 같이 ArrayList를 testArrayList변수안에 담아보겠습니다.
1
2
3
|
데이터를 추가할 땐 add()메소드를 이용합니다.
배열과 마찬가지로 인덱스 0부터 차례대로 데이터가 저장됩니다.
"아이폰", "맥북", "에어팟"을 testArrayList에 추가해보도록 하겠습니다.
1
2
3
4
5
6
7
|
ArrayList testArrayList = new ArrayList();
testArrayList.add("아이폰");
testArrayList.add("맥북");
testArrayList.add("에어팟");
|
배열에서는 배열의 크기를 length를 이용하여 반환합니다. ArrayList는 length대신 메소드 size()를 사용합니다.
값을 꺼낼 때 배열에서 [인덱스번호]를 사용했던 것과 달리, 컬렉션은 .get(인덱스번호)을 사용합니다.
위에서 언급한 주의 사항을 말씀 드리기 위해 print문으로 바로 출력하지 않고, 값을 변수에 담아서 꺼내보도록 하겠습니다.
1
2
3
4
|
for (int i = 0; i <testArrayList.size(); i++){
String warning = testArrayList.get(i);
System.out.println(warning);
}
|
위의 코드는 컴파일 오류가 발생합니다. add메소드를 통하여 데이터를 삽입할 때,
add메소드는 저희가 String형태의 애플 제품명을 삽입할지, Int형의 품번을 삽입할 지 알 수 없습니다.
그렇기 때문에, add메소드는 모든 데이터의 조상인 Object형식으로 데이터를 받습니다.
위와 같이 변수안에 담아서 사용하려면, 아래와 같이 캐스팅을 해줘야 합니다.
1
2
3
4
|
for (int i = 0; i <testArrayList.size(); i++){
String warning = (String)testArrayList.get(i);
System.out.println(warning);
}
|
위와 같은 방식은 예전 방식이지만,
add메소드가 기본적으로 담는 형식을 말씀드리기 위해 돌려서 말씀드렸습니다.
현재는 제네릭을 사용합니다.
제네릭의 사전적인 의미는 '일반적인', '총칭적인'이라는 뜻을 갖고 있습니다.
제네릭은 다음과 같은 형식을 사용합니다.
1
|
ArrayList<String> testArrayList = new ArrayList<String>();
|
위 코드가 의미하는 바는 'testArrayList라는 변수에 추가하는 값들은 String타입을 갖는다'
라는 것을 의미합니다.
마치며
글 쓰는 것은 역시 어렵네요, 자주 써봐야겠습니다.
잘못된 부분은 알려주시면 수정하도록 하겠습니다. 감사합니다.
'Dev > Java & Spring' 카테고리의 다른 글
[SpringBoot] DB 연결 (0) | 2020.03.06 |
---|---|
[Spring] AOP 개념 (0) | 2020.03.03 |
[Spring] Maven Ojdbc6 에러 (0) | 2020.02.21 |
[Java] Buffer를 이용한 입출력 (0) | 2020.02.18 |
[JSP] HttpSession 인터페이스 (0) | 2020.02.13 |