본문 바로가기

백엔드

자료구조 컬렉션 클래스

List 인터페이스

여러건의 데이터가 하나의 객체로 관리
입력된 데이터에 순서가 존재
ex) ArrayList, LinkedList, Stack

Array와 가장 유사한 컬렉션 클래스

*Array 객체를 이용한 ArrayList 객체 생성

  import java.util.ArrayList;
  import java.util.Arrays;

  public class NewTubeSystem{
    public static void main(String[] args){
      String[] data = {"steve", "bill", "larry"};
      ArrayList<String>engineers = new ArrayList<>(Arrays.asList(data))

      System.out.println(engineers);
   }
 }

java.util.Arrays 클래스의 static asList()메서드 사용 초기값을 객체로 변환

출력
[steve, bill, larry]

 

Map 자료구조 컬렉션 클래스

Map<K,V>
ex) 한 사람의 정보를 저장
: 하나의 데이터를 설명하기 위한 여러 속성 정보가 필요, 순서X, 동일한 속성으로 여러 개 존재X
Value: "김진수"
Key:"name"- 고유한 주소 역할(인덱스와 유사)
Pair(Key-Value): 데이터 여러 건을 하나의 객체로 관리 - 상속X, 독립적으로 정의

key값이 Hash알고리즘을 이용해 구조화 되어있어 Key값을 이용한 검색 속도가 빠름

HashMap 객체 생성 문법

import java.util.HashMap;

HasgMap<Key-Type-Class, Value-Type-Class> hashMap-name = new HashMap<>();

import java.util.HashMap;: HashMap 클래스를 사용하기 위해 컴파일러에 해당 Class가 존재하는 패키지 정보 제공
HashMap: 생성하고자 하는 객체가 HashMap 클래스 임을 지정
<Key-Type-Class, Value-Type-Class>: 제네릭을 이용해 객체에서 사용할 Key, Valye의 데이터 타입 지정

HashMap 객체 생성

import java.util.HashMap;

public class NewTubeSystem{
  public static void main(String[] args){
    HashMap<String, String> steve = new HashMap<>();
    steve.put("password","asd123");

    System.out.println(steve);
    System.out.println(steve.contaonsKey("email");
    System.out.println(steve.contaonsKey("password");

  }
}

출력
{password=asd123},false,true

 

Set 자료구조 컬렉션 클래스

ex) 전 세계 국가들의 이름을 저장
: 저장되는 데이터에 순서X, 중복되는 데이터 저장X

HashSet 클래스가 가장 많이 사용됨
: 저장된 데이터 접근하기 위한 정보가 없음 ex) List 인덱스, Map Key > get 메서드 정의X

HashSet 객체 생성

import java.util.HashSet;

public class NewTubeSystem{
  public static void main(String[] args){
    HashSet<String> watchCourse = new HashSet<>();
    watchCourse.add("Effective Java");

    System.out.println(watchCourse);
  }
}```

'백엔드' 카테고리의 다른 글

Spring Boot 컨트롤러와 REST API  (0) 2023.11.22
컨트롤러의 구현 문법  (0) 2023.11.16
계층형 아키텍처  (0) 2023.11.16
스프링 프레임워크  (0) 2023.11.15
컬렉션 프레임워크  (0) 2023.11.14