Java의 연관 배열

Mohammad Irfan 2023년10월12일
  1. Java에서 연관 배열 사용
  2. Java의 연관 배열 개요
  3. Java에서 연관 배열 구현
  4. Java에서 연관 배열 생성
  5. Java에서 연관 배열에 요소 추가
  6. Java에서 연관 배열의 요소 순회
  7. Java 8에서 forEach() 메서드를 사용하여 연관 배열의 요소 탐색
Java의 연관 배열

연관 배열은 keyvalue 쌍으로 요소 집합을 저장하는 배열 유형입니다. 키가 고유하고 하나의 값과 연결된 키와 값의 모음입니다.

연관 배열에서 요소에 액세스해야 하는 경우 배열의 이름을 호출하고 누가 액세스하려는 값 키를 전달해야 합니다.

Java에서 연관 배열 사용

예를 들어, 우리는 롤 번호와 학생의 점수를 저장하는 마크라는 배열이 있습니다.

따라서 특정 학생의 표시에 액세스해야 하는 경우 이 표시를 105라고 부를 수 있습니다. 여기서 표시는 배열의 이름이고 105는 학생의 롤 번호이지 인덱스 번호가 아닙니다. Java 언어를 사용하는 경우 배열에서는 불가능합니다.

따라서 연관 배열은 Java를 지원하지 않지만 HashMap을 사용하여 쉽게 얻을 수 있습니다. Java는 연관 배열을 지원하지 않지만 Map을 사용하여 구현할 수 있습니다.

Java의 연관 배열 개요

HashMap<String, String> hashmap = new HashMap<>();
// method to add the key,value pair in hashmap
hashmap.put("Key1", "Value1");
hashmap.put("Key2", "Value2");
hashmap.put("Key3", "Value3");
// and many more...
// get the value 1 and 2
System.out.println(hashmap.get("Key1"));
System.out.println(hashmap.get("Key2"));
// and many more...

Java에서 연관 배열 구현

Java에서 연관 배열을 구현하기 위해 Map 인터페이스의 구현 클래스인 HashMap을 사용했습니다. 단계별로 이해합시다.

먼저 HashMap을 가져오고 초기화합니다. 즉, 다음 명령문을 사용하여 HashMap 인스턴스를 생성합니다.

import java.util.HashMap;
HashMap<String, String> hashmap = new HashMap<>();

그런 다음 put() 메서드를 사용하여 HashMap에 키 값을 추가합니다.

hashmap.put("Key1", "Value1");

중복 키를 제거하기 위해 entrySet() 메소드를 사용하여 HashMap을 Set으로 변환하십시오.

Set<Map.Entry<String, String> > set = map.entrySet();

Set을 원하는 배열인 ArrayList로 변환합니다.

List<Map.Entry<String, String>> list = new ArrayList<>(set);

Java에서 연관 배열 생성

이 예제에서는 HashMap 클래스를 사용하여 Java에서 연관 배열을 구현했습니다.

키-값 쌍 형식의 데이터가 포함되어 있으며 getKey() 메서드를 사용하여 키에 액세스하고 getValue() 메서드를 사용하여 값에 액세스합니다.

import java.io.*;
import java.util.*;
public class SimpleTesting {
  public static void main(String[] args) {
    HashMap<String, String> hashmap = new HashMap<>();
    hashmap.put("Virat", "Batsman");
    hashmap.put("Bumrah", "Bowler");
    hashmap.put("Jadeja", "All-rounder");
    hashmap.put("Pant", "Wicket-Keeper");

    Set<Map.Entry<String, String>> s = hashmap.entrySet();
    List<Map.Entry<String, String>> array = new ArrayList<>(s);
    for (int i = 0; i < array.size(); i++) {
      System.out.println(array.get(i).getKey() + " is " + array.get(i).getValue());
    }
  }
}

출력:

Pant is Wicket-Keeper
Jadeja is All-rounder
Bumrah is Bowler
Virat is Batsman

이미 논의한 대로 해당 키는 고유해야 합니다. 연관 배열에 동일한 키를 삽입하면 key-value 쌍 중 하나가 삭제됩니다.

다음 코드에 두 개의 동일한 키 Virat를 삽입했습니다. 아래 예를 참조하십시오.

import java.io.*;
import java.util.*;
public class SimpleTesting {
  public static void main(String[] args) {
    HashMap<String, String> hashmap = new HashMap<>();
    hashmap.put("Virat", "Batsman");
    hashmap.put("Bumrah", "Bowler");
    hashmap.put("Jadeja", "All-rounder");
    hashmap.put("Pant", "Wicket-Keeper");
    hashmap.put("Virat", "Captain");

    Set<Map.Entry<String, String>> s = hashmap.entrySet();
    List<Map.Entry<String, String>> array = new ArrayList<>(s);
    for (int i = 0; i < array.size(); i++) {
      System.out.println(array.get(i).getKey() + " is " + array.get(i).getValue());
    }
  }
}

출력:

Pant is Wicket-Keeper
Jadeja is All-rounder
Bumrah is Bowler
Virat is Captain

Java에서 연관 배열에 요소 추가

put() 메소드를 사용하여 맵의 배열에 요소를 추가할 수 있습니다. 마찬가지로 remove() 메서드를 사용하여 배열에서 요소를 제거할 수 있습니다.

size() 메서드를 사용하여 배열의 크기를 알 수 있습니다.

import java.util.HashMap;
public class SimpleTesting {
  public static void main(String[] args) {
    HashMap<String, String> fruits = new HashMap<String, String>();
    fruits.put("Apple", "Red");
    fruits.put("Banana", "Yellow");
    fruits.put("Guava", "Green");
    fruits.put("Blackberries", "Purple");

    System.out.println("The Size of fruits Map is : " + fruits.size());
    // Remove Banana from the HashMap
    fruits.remove("Banana");
    // To find out the size of the Hashmap
    System.out.println("The Size of fruits Map is : " + fruits.size());
    // Check whether the key is present in the Hashmap or not
    String fruit_key = "Apple";
    if (fruits.containsKey(fruit_key)) {
      System.out.println("The colour of " + fruit_key + " is: " + fruits.get(fruit_key));
    } else {
      System.out.println("There is no entry for the fruit of " + fruit_key);
    }
  }
}

출력:

The Size of fruits Map is : 4
The Size of fruits Map is : 3
The colour of Apple is: Red

Java에서 연관 배열의 요소 순회

for-each 루프를 사용하여 연관 배열을 탐색할 수 있습니다. HashMapjava.util 패키지에 속하므로 foreach 루프를 사용하여 해당 요소를 반복할 수 있습니다.

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class SimpleTesting {
  public static void main(String[] args) {
    HashMap<String, String> fruits = new HashMap<String, String>();
    fruits.put("Apple", "Red");
    fruits.put("Banana", "Yellow");
    fruits.put("Guava", "Green");
    fruits.put("Blackberries", "Purple");
    System.out.println("The Size of fruits Map is : " + fruits.size());
    for (Map.Entry element : fruits.entrySet()) {
      String key = (String) element.getKey();
      System.out.println(key + " : " + element.getValue());
    }
  }
}

출력:

The Size of fruits Map is : 4
Guava : Green
Apple : Red
Blackberries : Purple
Banana : Yellow

Java 8에서 forEach() 메서드를 사용하여 연관 배열의 요소 탐색

Java 8 이상 버전으로 작업하는 경우 forEach() 메서드를 사용하여 배열 요소를 탐색할 수 있습니다. forEach() 메소드에는 lambda 표현식이 인수로 필요합니다.

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class SimpleTesting {
  public static void main(String[] args) {
    HashMap<String, String> fruits = new HashMap<String, String>();
    fruits.put("Apple", "Red");
    fruits.put("Banana", "Yellow");
    fruits.put("Guava", "Green");
    fruits.put("Blackberries", "Purple");

    System.out.println("The Size of fruits Map is : " + fruits.size());
    fruits.forEach((k, v) -> System.out.println(k + " : " + v));
  }
}

출력:

The Size of fruits Map is : 4
Guava : Green
Apple : Red
Blackberries : Purple
Banana : Yellow

이 튜토리얼에서는 Java가 기술적으로 연관 배열을 지원하지 않지만 HashMap을 사용하여 쉽게 구현할 수 있음을 연구했습니다.

관련 문장 - Java Array