so woon!

[공통] 자료구조 본문

Java/개념정리

[공통] 자료구조

xowoony 2022. 10. 18. 16:37

학습일 : 2022. 10. 18


자료구조


자료구조(Data Structure)는 자바에서 데이터를 보다 쉽게 이용할 수 있게 하기 위해 만들어졌다.
자료구조의 구조

 


Collection(java.util.Collection\<E\>)


List(java.util.List\<E\>)


비정적 메서드

            add(E e) : E타입의 객체 e를 List에 추가한다. (현재 리스트(배열)의 크기는 자동으로 늘어난다.)

            clear() : List가 가진 원소를 모두 제거한다.

            contains(E e) : 원소 중 전달 받은 e객체와 동일한( equals ) 객체를 가지고 있는지의 여부를 반환한다.

            get(int i) : i번째 객체를 반환한다.

            indexOf(E e) : List가 가진 원소 중 전달된 매개 변수 e와 equals인 원소의 인덱스 순번(인덱스)을 반환한다.
                                   없다면, -1을 반환한다.

            remove(int i) : i번째 객체를 List에서 제거한다. (삭제 후 리스트(배열)의 크기는 자동으로 줄어든다.)

            remove(E e) : List에서 전달 받은 e객체에 대해 equals(...) 호출 결과가 true인 원소를 제거한다.
                                    (삭제 후 리스트(배열)의 크기는 자동으로 줄어든다.)

            size() : 원소의 개수를 반환한다.


ArrayList(java.util.ArrayList\<E\>)

            `ArrayList`는  E타입의 객체를 그 원소로 가진다.

            (일반 배열 처럼) 순번 (인덱스 번호) 으로 데이터에 접근한다.

            일반 배열과 달리 데이터 조회, 추가 및 삭제가 용이해 많이 사용한다.

            데이터 조회(접근)는 다른 List보다 빠르지만, 데이터 추가 및 삭제는 느린편이다.
ArrayList<String> names = new ArrayList<>();
names.add("김김김");

ArrayList<Boolean> nums2 = new ArrayList<>();


ArrayList<Integer>  
ArrayList<Boolean>
 ==> <>안에는 참조타입이 들어가야 한다.


Map(java.util.Map<K, V>)
(Map은 자바스크립트의 오브젝트와 비슷)


비정적 메서드
         - clear() : 가지고 있는 모든 키-값-쌍을 제거한다.
         - containsKey(K k) : 원소 중 전달된 K 타입의 객체 k를 키로 가지는 원소가 있는가의 여부를 반환한다.
         - containsValue(V v) : 원소중 전달된 V 타입의 객체 v를 갑승로 가지는 원소가 있는가의 여부를 반환한다.    
         - get(K k) : K타입의 키 객체 k를 키로 가지는 원소의 V타입 값 객체를 반환한다.
         - keySet() : 가지고 있는 모든 키-값 쌍의 키(들)에 대한 Set<K> 객체를 반환한다.
         - put(K k, V v) : K타입의 키 객체 k에 대한 V타입의 값 객체 v의 쌍을 추가한다.
         - remove(K k) : 원소인 키-값쌍 중 키가 K타입의 k객체와 같은(hashCode() 로 판단) 원소를 제거한다. 
         - size() : 가지고 있는 모든 키-값 쌍의 개수를 반환한다. 단, 키와 값 쌍 하나를 한개로 판단하므로 유의한다.
         - values() : 가지고 있는 모든 키-값 쌍의 값(들)에 대한 Collection<V> 객체를 반환한다.


HashMap (java.util.HashMap<K, V>)
         - HashMap<K, V> 는 K타입의 객체인 키(Key)와, V타입의 객체인 값(Value)의 쌍을 원소로 가진다.
         - 각 '키-값 쌍'은 인덱스 번호로 접근할 수 없다.
         - 어떠한 값에 접근하기 위해서는 키가 필요하다.
         - hashCode() 호출 결과가 동일한 같은 타입의 객체를 키로 가지는 원소가 여러개 존재할 수 없다.

import java.util.HashMap;

public class Main {
    public static void main(String[] args) throws Throwable {
        HashMap<String, Integer> scores = new HashMap<>(); // HashMap 객체화 key는 String, value는 Integer
        scores.put("김김김", 87);  // ctrl+p 누르면 뭐 적어야되는지 알려줌
        scores.put("이이이", 100);
        scores.put("박박박", 105);
        /*자바스크립트의 object의 경우
        let scores = {
            김김김 : 87,
            이이이 : 100,
            박박박 : 105
        }
         */
        int scoreOfPark = scores.get("박박박"); // 105
        System.out.println("박박박 : " + scoreOfPark);


    }
}
import java.util.HashMap;

public class Main {
    public static void main(String[] args) throws Throwable {
        HashMap<String, Integer> scores = new HashMap<>(); // HashMap 객체화 key는 String, value는 Integer
        scores.put("김김김", 87);  // ctrl+p 누르면 뭐 적어야되는지 알려줌
        scores.put("이이이", 100);
        scores.put("박박박", 105);
        /*자바스크립트의 object의 경우
        let scores = {
            김김김 : 87,
            이이이 : 100,
            박박박 : 105
        }
         */
        System.out.println(scores.get("박박박"));
        scores.remove("박박박");
        System.out.println(scores.get("박박박"));

'Java > 개념정리' 카테고리의 다른 글

[기타] 자주 사용하는 의존성  (0) 2022.10.20
[공통] 메이븐  (0) 2022.10.20
[공통] 인터페이스  (0) 2022.10.18
[클래스] Math  (0) 2022.10.18
[클래스] String  (0) 2022.10.18
Comments