본문 바로가기
Programming/JAVA

리스트(List) 와 ArrayList의 차이

by 성동구불주먹 2022. 8. 11.

List는 인터페이스고 ArrayList는 클래스이다.

 

 

  • 클래스는 일반 클래스와, abstract로 정의된 추상 클래스로 나뉨
  • 인터페이스는 모든 메서드가 추상 메서드인 경우를 의미 
  • 인터페이스를 상속받는 클래스는 인터페이스에서 정의된 추상 메서드를 모두 구현해야 함
     (따라서 다양한 클래스를 상속받는 특정 인터페이스는 결국 동일한 메서드를 제공함)

 

 

 


하나의 예를 보자.

 

List<Integer> list1 = new ArrayList<Integer>();  // list1을 ArrayList객체로 만듦
list1 = new LinkedList<Integer>(); 		 // 그리고 이렇게 LinkedList 객체로도 대체가 가능함

 

위의 예제에서 보듯이 List<Integer>가 인터페이스인데, 해당 인터페이스의 추상 메서드를 구현하는 게

ArrayList, LinkedList 둘 다 가능하기 때문에 서로 대체가 가능하다.

 

 

 

 

💡 List의 메서드 종류

ArrayList<Integer> list1 = new ArrayList<Integer>();

 

  • list1에 아이템 추가 시에는 add를 사용 : list1.add(1), list1.add(2);
  • list1의 특정 아이템을 읽을 시 get(인덱스번호)을 사용 : list1.get (0);
        ⇒ 1 
  • list1의 특정 인덱스에 해당하는 아이템 변경 시 set을 사용 : list1.set(0,5);
        ⇒ 1이었던 값이 5로 바뀜
  • list1의 특정 인덱스에 해당하는 아이템 삭제 시 remove를 사용 : list1.remove(0);
        ⇒ 2 (0번째의 인덱스 값이 사라지고 1번째에 있던 값이 0의 자리로 옴)
  • list1의 배열 길이 확인은 : list1.size();
        ⇒ 1

 

 

 


📝3차원 배열 출력 연습

 

public class Test {
    public static void main(String[] args) {
      Integer [][][] data_list = {
        {
            {1,2,3},
            {4,5,6}
        },
        {
            {7,8,9},
            {10,11,12}
        }
      };
      //3차원 배열에서 8, 10, 2를 순서대로 출력해보기
      System.out.println(data_list[1][0][1]);
      System.out.println(data_list[1][1][0]);
      System.out.println(data_list[0][0][1]);
    }

}

 

 

 

 

 

public class Test {
    public static void main(String[] args) {

        String str = "HelloSpring";
        System.out.println(str.indexOf("S"));
        //"S"의 index 위치는 5번째이므로 값은 5가 된다.
    }
}

 

  • 배열.length : 배열에 들어있는 아이템 개수
  • 문자열.indexOf(String key)
    : String key가 해당 문자열에 있으면 해당 문자의 위치(index값)를 리턴하고, 없으면 -1을 리턴함
반응형

'Programming > JAVA' 카테고리의 다른 글

Getter & Setter  (0) 2023.12.19
ResponseBody 어노테이션 사용법  (0) 2023.12.19
Optional 클래스  (0) 2022.08.18
스택(Stack)의 구조  (0) 2022.08.11
큐(Queue)의 구조  (0) 2022.08.11