[JAVA] List

고민정·2024년 4월 8일

JAVA

목록 보기
28/32


🎇 List

<interface> List<interface> Collection 을 상속받는다.

  • Collection 상속받아서 사용 가능한 메서드

    • add( ) : 자료 추가
    • size( ) : 저장된 자료 수를 반환
    • iterator( ) : 자료를 꺼냄
  • Iterator 의 메서드

    • hasNext( )
      collection 을 상속받기 때문에 iterator 를 사용 가능하다.
      꺼낼 자료가 있나 없나 확인할 때 사용된다.
    • next( )
      collection 을 상속받기 때문에 iterator 를 사용 가능하다.
      자료를 하나하나씩 꺼낼 때 사용된다.
  • 중복 허용 ⭕

  • 순서 ⭕

  • get(int )
    순서에 맞는 자료를 꺼내는게 가능하다.
    index 를 기억한다.


💡 E.g.

list 도 인터페이스이기 때문에 new 연산자를 사용해 객체를 생성할 수 없다.
따라서 가장 많이 사용되고 있는 ArrayList( ) 사용한다.

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ListExam {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        boolean flag1 = list.add("Sara");
        boolean flag2 = list.add("Anthony");
        boolean flag3 = list.add("Sara");

        System.out.println(flag1);
        System.out.println(flag2);
        System.out.println(flag3);
        System.out.println("-----------------------");

        System.out.println("The size of list is "+ list.size());
        System.out.println("-----------------------");

        //using index
        for(int i=0;i<list.size();i++){
            String str= list.get(i);
            System.out.println(str);
        }
        System.out.println("-----------------------");

        //using iterator
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()){
            String str2= iterator.next();
            System.out.println(str2);
        }
        System.out.println("-----------------------");
    }
}


		boolean flag1 = list.add("Sara");
        boolean flag2 = list.add("Anthony");
        boolean flag3 = list.add("Sara");
        System.out.println("The size of list is " + list.size());

모든 flag 의 값들이 true 가 나오고
size 가 3 개가 나오는 것으로 보아 lsit 가 중복을 허용한다는 사실이 증명되었다.

이제 하나하나씩 값을 꺼내어 볼 것이다.

첫번째는 list 의 특징인 순서를 기억한다는 사실을 이용하여 for 문을 돌려 index 로 값을 꺼내어 봤다.

		//using index
        for(int i=0;i<list.size();i++){
            String str= list.get(i);
            System.out.println(str);
        }

두번째는 collection 을 상속받고 있기 때문에 iterator 를 사용하여 값을 꺼내어 봤다.

		//using iterator
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()){
            String str2= iterator.next();
            System.out.println(str2);
        }

두 방법 모두 값이 잘 꺼내지는 것을 볼 수 있다.

하지만 list 를 사용한다는 것은 아마 인덱스가 필요한 경우가 더 많을 것이니 for 문을 더 많이 사용하지 않을까 싶다.

0개의 댓글