ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 잡동사니 팀: 모각코 2주차 2회모임 결과 (24.01.13 / 토요일 / 10시 ~ 13시)
    카테고리 없음 2024. 1. 13. 13:00

    Linked List

    데이터를 연속적인 위치에 저장하는 배열과 다르게 각 노드가 데이터와 포인터를 가지고 연결되어 있는 방식으로 데이터를 저장하는 자료구조

     

    Array list보다 검색이 느리지만 삽입, 삭제에 용이해서 삽입, 삭제가 빈번히 일어나는 경우에 주로 사용한다.

     

     

    Collection 프레임워크의 일부이며 java.util 패키지에 소속되어 있어서 import해서 Linked List를 사용할 수 있다.

    LinkedList l = new LinkedList();
    LinkedList<Integer> li = new LinkedList<>();
    LinkedList<Integer> li2 = new LinkedList<Integer>();
    LinkedList<Integer> li3 = new LinkedList<Integer>(Arrays.asList(1, 2, 3));
    
    LinkedList<String> li4 = new LinkedList<>();

    위와 같이 선언할 수 있고, 타입을 지정하여 선언할 수 있다. 타입을 지정하지 않으면 Object 타입이 된다.

     

     

    LinkedList<String> li4 = new LinkedList<>();
    
    li4.add("hello");
    li4.add("bye");
    li4.add(1, "hi");

    Linked List에 값을 추가하기 위해 add() 메소드를 사용한다.

    add(Object)

    add(int index, Object)

    두 가지 사용방법이 있고, 위는 linked list 마지막에 데이터를 추가하고, 아래는 해당 index에 데이터를 추가한다.

    출력결과

    li4를 출력해보면 다음과 같이 hi라는 문자열이 1번째 index에 추가된 것을 확인할 수 있다.

     

    li4.set(1, "hiiiiiii");

    값을 변경하기 위해 set() 메소드를 사용한다.

    set(int index, Object)

    해당 index의 데이터를 Object로 변경한다.

    출력결과

    출력해보면 1번째 index의 문자열이 변경된 것을 확인할 수 있다.

     

     

    li4.add("hello");
    li4.add("bye");
    li4.add(1, "hi");
    System.out.println(li4);
    
    li4.remove();
    System.out.println(li4);
    
    li4.remove(3);
    System.out.println(li4);
    
    li4.removeFirst();
    System.out.println(li4);
    
    li4.removeLast();
    System.out.println(li4);
    
    li4.clear();
    System.out.println(li4);

     

    값을 삭제할 때

    remove() : 첫 번째 데이터 삭제

    remove(int index) : 해당 index의 데이터 삭제

    removeFirst() : 첫 번째 데이터 삭제

    removeLast() : 마지막 데이터 삭제

    clear() : list의 모든 데이터 삭제

    와 같은 메소드들을 사용한다.

     

    앞에서 만들었던 li4에 값을 추가하고 제거하는 메소드들을 실행해보면  위와 같은 결과를 얻을 수 있다.

     

     

    System.out.println(li4);
    System.out.println(li4.size());

    실행결과

    list의 크기를 알기 위해 size() 메소드를 사용한다.

     

    System.out.println(li4.contains("hello"));
    System.out.println(li4.contains("ha"));
    System.out.println(li4.indexOf("hello"));
    System.out.println(li4.indexOf(3));

    linked list에 원하는 데이터가 있는지 검색하기 위해 contains() 메소드와 indexOf() 메소드를 사용한다.

    contains()는 list에 값이 있는지 없는지 boolean 값으로 리턴해주고,

    indexOf()는 찾는 데이터의 index를 리턴해준다. 찾는 데이터가 list에 없다면 -1를 리턴한다.

    실행 결과

     

    hello라는 문자열이 2개 포함되어 있는데, indexOf() 메소드를 사용했을 때 0만 출력되었다.

    indexOf()는 찾는 데이터가 맨 처음 나오는 index를 리턴해주는 것을 알 수 있다.

Designed by Tistory.