yeny_lab

[자료구조] Array List [JAVA]

2020. 3. 9. 20:21·자료구조 + 알고리즘
728x90

 


리스트라는 완제품 안에 배열이라는 부품을 사용한다.

 

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

 

 

 

728x90

'자료구조 + 알고리즘' 카테고리의 다른 글

[자료구조] 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
'자료구조 + 알고리즘' 카테고리의 다른 글
  • [자료구조] ArrayList 구현 - addLast, 데이터를 끝에 추가 [Java]
  • [자료구조] ArrayList 구현 - 객체생성 [Java]
  • [자료구조] List 리스트 [JAVA]
  • [자료구조] Array 배열 [JAVA]
히어로맛쿠키
히어로맛쿠키
  • 히어로맛쿠키
    yeny_lab
    히어로맛쿠키
  • 전체
    오늘
    어제
    • 분류 전체보기 (387)
      • 미분류글 (30)
        • ㅇ (2)
      • JAVA (84)
        • Effective Java (1)
        • Application (21)
      • 컴퓨터구조 & OS (28)
      • 자료구조 + 알고리즘 (43)
      • Database (12)
      • 컴파일러 (10)
      • 수학 (33)
        • 미분방정식 (12)
      • 데이터분석과 머신러닝 (38)
      • 기타 (59)
      • yyeeennyy (25)
  • 공지사항

    • ^o^/♡
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
히어로맛쿠키
[자료구조] Array List [JAVA]
상단으로

티스토리툴바