본문 바로가기

WINK-(Web & App)/JAVA 스터디

[2024-2 Java 스터디] 김규현 #2주차

반응형

 

맵(map)

key 값과 value 값을 한쌍으로 가지는 자료형으로 파이썬에서 dictionary와 비슷하다.

 

HashMap 

맵 자료형 중 가장 기본이다

import java.util.HashMap;

public class Sample {
    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<>();
        map.put("animal", "동물");
        map.put("baseball", "야구");
    }
}

 

HashMap<key의 자료형, value의 자료형> (map 이름)으로 HashMap을 만들 수 있다. 

put을 이용하여 map안에다가 넣고자 하는  key, value 값을 넣을 수 있다.

 

System.out.println(map.get("animal"));// "동물" 출력

 

get을 이용하여 원하는 key값에 해당하는 value값을 얻을 수 있다.

(value값을 집어넣는다고 key값을 반환하지는 않음, key값에 해당하는 value값이 없을 경우 null을 반환)

 

System.out.println(map.containsKey("people"));  // true 출력

 

containsKey을 이용하여 map안에 해당 key값이 있는지 없는지 확인가능

(true, false값을 반환)

System.out.println(map.remove("people"));  // "사람" 출력

remove을 이용하여 key값을 넣으면 해당 key의 값과 그에 해당하는 value값을 삭제후 value값을 반환함

(해당 key의 값이 없을 경우 null을 반환)

 

System.out.println(map.size());

size을 이용하여 map의 크기를 사용할 수 있다.

 

집합(set)

 

HashSet 대표적인 set이다.

(특징) 1.중복을 허용하지 않는다, 2.순서가 없음

import java.util.Arrays;
import java.util.HashSet;

public class Sample {
    public static void main(String[] args) {
        HashSet<String> set = new HashSet<>(Arrays.asList("H", "e", "l", "l", "o"));
        System.out.println(set);  //  [e, H, l, o] 출력
    }
}

중복을 허용하지 않기 때문에 l이 하나만 출력되고 순서가 없기 때문에 H, e, l, o순서대로 출력되지 않는다.

(이를 해결하기 위해 TreeSet, LinkedHashSet을 이용하여 순서를 조정할 수 있음)

 

 HashSet<Integer> intersection = new HashSet<>(w1);  // s1으로 intersection 생성
 intersection.retainAll(w2);  // 교집합 수행

retainAll메서드를 이용하여 intersection이라는 새로운 set설정 후에 w1과 w2의 교집합을 만들 수 있다.

같은 방법으로 합집합을 구할 때는 union을 이용해서, 차집합을 구할 때는 subtract를 이용하면 된다.

 

kmuset.add("hello");
kmuset.addAll("kmu", "ai");
kmuset.remove("hello");

원하는 set에다가 add, addAll, remove를 통해 특정원소를 추가하거나, 특정원소를 제거할 수 있다.

 

상수집합(enum)

enum AnimalType {
    Lion,
    Tiger,
    ALaphant
};

enum으로 상수 집합을 설정한다.

 

integer클래스

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

문자열을 정수로 바꾸어준다.

String num = "" + n;

정수를 문자열로 바꾸려면 ""을 다음과 같이 추가해준다.

 

fianl

final int n = 123;

자료형의 값을 단 한번만 설정할 수 있게 강제한다.

(자료형 변환이나 다른 변수 설정 불가능)

 

if 문

if (조건문) {
    <수행할 문장1>;
    <수행할 문장2>;
    ...
} else {
    <수행할 문장A>;
    <수행할 문장B>;
    ...
}

기본적인 if문 이다.

조건문에는 비교연산자 혹은 참거짓 값이 들어 갈 수 있고 참일때 아래 문장을 수행한다,

 

(pocket.contains("money"))

if 조건문 안에 contains을 이용해 pocket이라는 list안에 특정 요소가 있는지 확인할 수 있다.

 

switch/case문 

switch(입력변수) {
    case 입력값1: ...
         break;
    case 입력값2: ...
         break;
    ...
    default: ...
         break;
}

일정한 형식이 있는 조건판단문

 

while문

while (조건문) {
    <수행할 문장1>;
    <수행할 문장2>;
    <수행할 문장3>;
    ...
}

조건문이 참일때 다음 문장을 수행한다.

(조건문이 true일때 무한 루프가 실행된다.)

 

for문

for (초기치; 조건문; 증가치) {
    ...
}
반응형