리스트라는 완제품 안에 배열이라는 부품을 사용한다.
array list
데이터를 삭제/추가할 때마다 데이터를 앞으로 한칸씩 땡기거나 뒤로 밀어야 함.
단: 배열을 이용해 리스트를 만들게 되면 데이터 추가 삭제할때 오래 걸림
장: 가져올 때. -> 인덱스 값으로 데이터를 가져올 때.
--> 기본적으로 배열을 이용하기 때문에, 인덱스를 이용할 때 유리.
+배열의 사이즈 구하듯 arraylist의 사이즈를 찾을 수 있음. (요소가 몇개인가)
자바에서는 arraylist 자료구조가 내장되어있기 때문에 내가 직접 구현해서 사용할 일은 x
나는 어레이리스트를 사용하는 방법을 알아야 함
사용방법을 정확히 인지했을 때, 구현방법에서 길을 잃지 않을 수 있음.
이번목표: Array List를 어떻게 사용하는가.
자바는 컬렉션 프레임워크라는 기본적인 라이브러리 안에 ArrayList라는 자료구조를 기본적으로 내장하고 있다.
ArrayList의 사용 방법에 대한 명확한 인지를 가지고 있을 때, 구현하는 방법에서 길을 잃지 않을 수 있다.
1. ArrayList 객체를 만들자 (데이터 타입 : ArrayList)
ArrayList<Integer> numbers = new ArrayList<>();
(저건 제너릭이라고 한다.)
+ ArrayList는 자바의 util 안에 포함되어 있으므로, import해주는 것도 알아두자.
ㅇ 데이터의 추가: ArrayList라는 객체가 가지고 있는 메소드인 .add()이용.
ㄴ리스트변수이름.add(인덱스번호, 추가할값)
ㄴ예: numbers.add(1,50)
ㅇ데이터의 삭제: .remove()라는 메소드를 쓴다.
ㄴ예: numbers.remove(2) ->인덱스 2의 값을 삭제한다.
ㅇ저장된 데이터를 인덱스를 이용하여 가져오기 : .get()이라는 메소드 사용
ㅇ데이터 사이즈를 가져오기: .size() 메소드 사용
Iteration. 되풀이. 반복.
ㅇArrayList 객체가 가지고 있는 메소드인 .iteratior()
ㅇ데이터 타입 Iterator
ㅇ.hasNext() : ArrayList가 가져올 다음 element가 있느냐? boolean
ㅇ.next() : 리스트의 첫번째 값, 그 다음은 두번째, 세번째.........마지막...
다른 방법으로 이렇게 처리 가능(while문 했으니 이번엔 for문~!)
(Interator말고 다른 순회 방법)
내가 알고있는 일반적인 for문의 쓰임새로도 당연히 쓸 수 있다.
for(int i=0; i<numbers.size(); i++){
System.out.println(numbers.get(i));
}
JAVA에서 ArrayList를 사용하는 방법을 알아봤다.
다음 시간에는 ArrayList가 내부적으로 어떻게 작동하는지 배운다.
복습
ㅇArrayList는 java.util.ArrayList에 포함되어 있다. import해야한다. import하시오.
>>import java.util.ArrayList;
ㅇArrayList객체를 만들어보자. String을 담는 ArrayList인 my_arr_list를 만들어보시오.
>>ArrayList<String> my_arr_list = new ArrayList<>();
ㄴGeneric 개념을 묻는다.
참고: (https://cornswrold.tistory.com/180) 제너릭 개념
ㅇadd메소드 호출해보기
오잉.. 제너릭 사용할 때 <>안에 비워두는 경우랑 <String>처럼 채우주는 경우는
무슨 차이가 있는 거지?
>>카페에 물어봤다.
생략된 거다. 동일하게 동작한다. Java SE 7 이후부터, 변수타입 변수명쪽에 제너릭 타입을 표시했을 경우, 우측 생성자에서는 이미 표현된 제너릭 타입 표현을 생략할 수 있게 되었다고 한다.
(https://docs.oracle.com/javase/tutorial/java/generics/types.html)
세분이 답변 해주셨는데 너무 최고다ㅜㅜ
아무튼 계속
ㅇ.remove()
ㅇ.get()
ㅇ.iterator();
my_arr_list의 iterator인 it를 초기화.
Iterator<string> it = my_arr_list.iterator();
컬렉션을 반복할 수 있게 하는 객체 iterator..
it.hasNext() ->T/F
System.out.println(it.next());
다음다음 넘어가면서 결국 모든 값을 출력하게 된다.
참고
https://programmers.co.kr/learn/courses/17/lessons/805
'자료구조 + 알고리즘' 카테고리의 다른 글
[자료구조] ArrayList 구현 - addLast, 데이터를 끝에 추가 [Java] (0) | 2020.03.11 |
---|---|
[자료구조] ArrayList 구현 - 객체생성 [Java] (0) | 2020.03.10 |
[자료구조] List 리스트 [JAVA] (0) | 2020.03.08 |
[자료구조] Array 배열 [JAVA] (0) | 2020.03.08 |
자료구조 공부 시작 (0) | 2020.03.08 |