Java

2024년 6월 11일 KH 교육 전 예습 : 집합, 상수 집합, 형 변환

최종군 2024. 6. 5. 20:56

 

 

집합 : set 

 

집합 자료형 특징 : 순서가 없다 그리고 중복을 허용하지 않는다 

 

HashSet 

import java.util.Arrays;
import java.util.HashSet; // HashSet 집합을 사용하기 위한 import

 

집합을 HashSet를 사용하기 위해서는 HashSet import문을 작성해야 된다 

 

// 집합 Hashset

HashSet<String> set = new HashSet<>();
set.add("Jump");
set.addAll(Arrays.asList("Java","to")); // addAll(Arrays.asList 값을 한꺼번에 여러 개 추가할 때)
set.remove("to"); // 특정 값을 제거할 때 사용이 된다.
System.out.println(set);

 

set 각종 메서드 : 

 

 

add : 집합형 자료형에 add 메서드를 통해서 값을 추가할 때 사용한다.

addAll : 값을 한꺼번에 여러 개 추가할 때 사용한다. 

remove : 특정 값을 제거할 때 사용한다 remove("to") 가 삭제가 되고 출력이 된다  

 

 

교집합 구하기 : retainAll 

 

 

HashSet<Integer> s1 = new HashSet<>(Arrays.asList(1,2,3,4,5,6));
HashSet<Integer> s2 = new HashSet<>(Arrays.asList(4,5,6,7,8,9));

 

HashSet<Integer> intersection = new HashSet<>(s1);
intersection.retainAll(s2);
System.out.println(intersection); 

 

HashSet을 만든 intersction 객체를 s1으로 넣고 인스턴화 했다 

intersction.retainAll(s2);을 통해서 교집합을 구할 수 있다 

 

합집합 : addAll

 

HashSet<Integer> s1 = new HashSet<>(Arrays.asList(1,2,3,4,5,6));
HashSet<Integer> s2 = new HashSet<>(Arrays.asList(4,5,6,7,8,9));

 

HashSet<Integer> union = new HashSet<>(s1);
union.addAll(s2);
System.out.println(union);

 

addAll을 통해서 합집합을 구할 수 있다 

 

 

 

차집합 : removeAll

 

substract.removeAll(s2);

 

removeAll을 통해서 차집합을 구할 수 있다. 

 

 

 

상수집합 : enum 

 

enum CoffeeType { // enum은 main 밖에서 클래스 안에서 생성이 되어야한다.

    AMERICANO,
    ICE_AMERICANO,
    CAFE_LATTE
};

 

 

 

// 상수 집합 enum

System.out.println(CoffeeType.AMERICANO);
System.out.println(CoffeeType.ICE_AMERICANO);
System.out.println(CoffeeType.CAFE_LATTE);

for (CoffeeType type : CoffeeType.values()){
    System.out.println(type); // for : CoffeType.valuse(객체) 배열을 리턴한다

    // enum 장점 : 매직 넘버를 사용할 떄보다 코드가 명확하다.
    // 잘못된 값을 사용해 생길 수 있는 오류를 막을 수 있다.

 

형변환 : 

// 문자열을 정수로 변환

String num = "123";
int n = Integer.parseInt(num);
System.out.println(n);

 

String 자료형을 int형으로 출력하기 

 

Integer 클래스 : Integer 클래스를 사용해서 parseInt 메서드를 통해서 

String - > int형 자료로 출력이 가능하다 

 

 

정수를 문자열로 출력하기 

// 정수를 문자열로
int n1 = 123;
int n2 = 123;
String num1 = String.valueOf(n1);
String num2 = Integer.toString(n2);
System.out.println(n1);
System.out.println(n2);

 

정수를 문자열로 출력하는데 두 가지 방법이 있다 

첫 번째

String.valueOf

두 번째

Integer.toString()

 

 

byte - > int -> long -> float -> double 자료형 순으로 올라갈 때 명시적 형변환은 필요가 없다 

 

자료형 크기가 작아지는 경우 : 

double d2 = 123.456;
int n5 = (int) d2;