자료 구조 설명

여준서·2024년 7월 26일
post-thumbnail

리스트 (List)

리스트는 순서가 있는 데이터의 집합을 저장하는 자료구조이다. 자바에서 List 인터페이스는 ArrayList,LinkedList등으로 구현된다.

  • 특징 :

    • 순서가 있다.(인덱스가 있다)
    • 중복된 요소를 허용한다.
    • 요소의 추가나 삭제 , 접근이 가능하다.
  • 주요 메서드 :

    • add(e) : 리스트의 끝에 요소를 추가한다.
    • get(int index) : 지정한 인덱스의 요소를 반환한다.
    • remove(int index) : 지정한 인덱스의 요소를 제거한다.
    • size() : 리스트의 크기를 반환한다.
    • contains(Object o) : 리스트에 지정된 요소가 포함되어 있는지 확인한다.
  • 예시 :

 List<String> names = new ArrayList<>(); //1
  names.add("Alice");//2
  names.add("Bob");
  names.add("Charlie");
  System.out.println(names.get(1)); //3
  • 코드설명:
    • ArrayList를 사용해서 문자열을 저장할 수 있는 리스트를 생성한다.
    • .add()메서드를 사용하여 리스트에 문자열들을 추가한다.
    • 리스트에서 인덱스 1에 있는 요소를 출력한다. 결과값으로는 "BOB"이 나오게 된다.

Set

Set은 중복되지 않는 유일한 값을 저장하는 자료구조이다. 자바에서 Set 인터페이스는 HashSet,TreeSet,LinkedHashSet 등으로 구현된다.

  • 특징 :

    • 순서가 없다.
    • 중복된 요소를 허용하지 않는다.
    • 요소의 추가, 삭제,검색이 가능하다.
  • 주요 메서드 :

    • add(e) : Set에 요소를 추가한다.
    • remove(o) :Set에서 지정된 요소를 제거한다.
    • `contains(o):Set에 지정된 요소가 포함되어 있는지 확인한다.
    • size() : Set의 요소 개수를 반환한다.
    • clear(): 셋의 모든 요소를 제거한다.
  • 예시:

Set<Integer> uniqueNumbers = new HashSet<>();
uniqueNumbers.add(1);
uniqueNumbers.add(2);
uniqueNumbers.add(1); // 중복된 요소는 추가되지 않는다
System.out.println(uniqueNumbers); // [1, 2]
  • 설명:
    • HashSet을 사용하고 Integer를 사용하여 정수형 값을 저장할 수 있는 Set을 생성한다.
    • .add()메서드를 사용하여 저장하는데 Set이 중복된 요소를 추가하지 않기 때문에 1번인덱스에 마지막으로 추가한 값이 추가되지 않는다.
    • Set의 요소들을 출력한다.

큐(Queue)

큐는 선입선출(FIFO) 방식으로 요소를 처리하는 자료구조이다. 쉽게 생각한다면 먼저 들어간 것이 먼저 나오는 빨대같은 구조라고 생각하면 된다.

자바에서 Queue 인테페이스는 LinkedList 등으로 구현된다.

-특징 :

  • 선입선출 구조라 요소가 추가된 순서대로 처리된다.

  • 주요 메서드 :

    • offer() : 큐에 요소를 추가한다.
    • poll() : 큐에서 가장 처음에 들어온 요소를 제거하고 반환한다.
    • peek() : 큐에서 가장 오래된 요소를 제거하지 않고 반환한다.
    • isEmpty() : 큐가 비어 있는지 확인한다.
    • size() : 큐의 요소 개수를 반환한다.
  • 예시 :

Queue<String> queue = new LinkedList<>(); //1
queue.offer("first"); //2
queue.offer("second");
queue.offer("third");
System.out.println(queue.poll()); // first //3
System.out.println(queue.peek()); // second //4
  • 코드 설명:
    • LinkedList를 사용하여 문자열을 저장할 수 있는 큐를 생성한다.
    • queue.offer() : 큐에 요소들을 추가할 수 있다 여기서는 문자열을 추가하였다.
    • 큐에서 제일 처음에 들어간 요소를 제거하고 출력한다. 결과는 first가 나오게 된다.
    • 큐의 첫번째 요소를 제거하지 않고 확인한다. 결과는 second가 나오게 된다.

Map

맵은 키와 값의 쌍으로 이루어진 데이터를 저장하는 자료구조이다. 자바에서 Map 인터페이스는 HashMap, TreeMap ,LinkedHashMap등으로 구현된다.

  • 특징 :

    • 키는 중복될 수 없다. 항상 unique해야한다. 하지만 값은 중복이 가능하다.
    • 키를 통해서 값을 검색, 추가, 삭제를 할 수 있다.
  • 주요 메서드 :

    • put() : Map에 키와 값을 추가한다.
    • get() : 지정한 키에 대한 값을 반환한다.
    • remove() : 지정한 키와 해당 값을 제거한다.
    • containsKey() : Map에 지정된 키가 존재하는지 확인한다.
    • size() : Map의 키-값 쌍의 개수를 반환한다.
    • clear() : Map의 모든 키와 값 쌍을 제거한다.
  • 예시 :

Map<String, Integer> nameToAge = new HashMap<>(); //1
nameToAge.put("Alice", 30); //2
nameToAge.put("Bob", 25);
nameToAge.put("Charlie", 35);
System.out.println(nameToAge.get("Alice")); // 30 //3
  • 코드설명 :
    • HashMap`을 사용하여 문자열을 키로, 정수를 값으로 가지는 Map을 생성한다. 첫번째 인자가 키, 두번째 인자가 값이다.
    • .put(): 키에는 문자열을 , 값에는 정수 값을 추가해준다.
    • .get() : 메서드를 사용하여 키("Alice")의 값을 가져와 출력한다. 결과는 30이 나오게 된다.
profile
DevOps 전향을 준비 중인 인프라 지향형 주니어 개발자

0개의 댓글