List 인터페이스에는 여러 구현체가 있는데 다음과 같다
먼저 ArrayList에 대해 알아보자
ArrayList는 클래스 이며 객체생성이 가능하다
데이터타입을 명시화시키기위해 제네릭 <> 을 사용하여 어떤 데이터타입의 ArrayList인지 표현할수있다
객체 생성을통해 변수 선언과 동시에 초기화도 가능하다
생성자에 asList 메소드를 사용해 값을 넣어주면 된다
다음은 ArrayList에 있는 기능들을 살펴보자
먼저 값을 추가하는 add 메소드가 있다
기본적으로 값을 하나 넣으면 앞에서부터 들어가지만 내가 원하는위치에 넣는것도 가능하다
처음엔 3을 넣고 그다음은 null을 넣고 인덱스 1의 위치에 10을 넣으면 결과가 어떻게 나올까?
3,null에서 1의자리에 10이 들어가니까 null이 뒤로 밀린것을 확인할수있다
다음은 삭제하는 기능을 살펴보자
remove는 내가 원하는 위치에있는 요소를 삭제할수있는 기능이다
clear는 모든 요소를 삭제하는 기능이다
size는 리스트의 크기를 확인하는 기능이다 ( 요소의 갯수 판별가능)
한번 결과를 보자
다음은 내가 원하는 위치에있는 요소를 꺼내는 get에 대하여 살펴보자
0번째에있는 요소를 꺼내보자
3이 정상적으로 출력이된다
다음은 for each 반복문을 살펴보자
조건식을 해석하자면 integer타입 i에 nums를 리스트 순서대로 담는 식이 된다
리스트안에 요소가 있는지 확인하는 기능인 contains도 살펴볼수있다
요소의 인덱스 넘버를 확인할수있는 indexOf기능
만약 요소가 없다면 -1을 출력한다
번외로 리스트를 순회하게 해주는 Iterator라는 기능이 있다 라는것만 알아두자
ArrayList를 활용하여 영화 평점매기는 코드를 작성해보았다
package structure.ch05;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
public class MovieRatingSystem {
public static void main(String[] args) {
// Movie Object 계속 추가하는 자료구조
ArrayList<Movie> movies = new ArrayList<Movie>();
movies.add(new Movie("범죄도시 4", 4));
movies.add(new Movie("반지의 제왕", 5));
movies.add(new Movie("기생충", 4));
movies.add(new Movie("신세계", 3));
System.out.println(movies);
for (Movie movie : movies) {
System.out.println(movie.getTitle());
}
System.out.println("----------------------------");
for (int i = 0; i < movies.size(); i++) {
// 배열이 아님 --> get() 메서드 사용
System.out.println(movies.get(i).getTitle());
}
// 어떤 데이터를 정렬을 하려면 정렬 알고리즘을 구현해서 기능을 만들어 주면 된다.
// 버블 정렬, 퀵, ....
Collections.sort(movies,new Comparator<Movie>() {
@Override
public int compare(Movie m1, Movie m2) {
return Integer.compare(m2.getRating(),m1.getRating());
}
});
// 평점 순으로 정렬된 영화 목록 출력
for (Movie movie : movies) {
System.out.println(movie);
}
} // end of main
} // end of class
class Movie {
private String title;
private int rating;
public Movie(String title,int rating) {
this.title = title;
this.rating = rating;
}
public String getTitle() {
return title;
}
public int getRating() {
return rating;
}
@Override
public String toString() {
return "Movie [title=" + title + ", rating=" + rating + "]";
}
}
'Java' 카테고리의 다른 글
Map 인터페이스 (0) | 2024.05.24 |
---|---|
Set 인터페이스 (0) | 2024.05.24 |
LinkedList (0) | 2024.05.22 |
배열을 활용한 큐 구현하기 (0) | 2024.05.21 |
배열을 활용하여 객체 만들기 (0) | 2024.05.21 |