자바 프로그래밍/코드
List, Set, Map
구리Guri
2020. 3. 9. 15:55
import java.util.HashMap;
import java.util.Map;
public class Exam_01 {
public static void main(String[] args) {
//
// List<String> list = new ArrayList<>();
// // 데이터에 순서가 존재 (입력된 순서대로)
// // 중복을 허용
//
// list.add("Hello");
// list.add("World");
// list.add("Java");
// list.add("Hello");
//
// System.out.println(list);//배열과 다르게 변수명만 적어도 출력이 된다
//
//// Set<String> set = new HashSet<>();
// // 입력된 데이터에 순서가 존재 x
// // 중복 허용 x
//
//// set.add("Hello");
//// set.add("World");
//// set.add("Java");
//// set.add("Hello"); //같은 내용이 두번째로 들어오면 기존의 데이터를 밀어낸다.
////
//// System.out.println(set);
//
// // List처럼 데이터를 보관하는 용도보다는
// // "데이터 검색", """중복제거용도"""로 많이 사용함 => 같은 데이터를 두번 저장하지 않는다는 성질을 이용함
//
// Set<Integer> set = new HashSet<>();
//
// while(set.size()<7) {
// set.add((int)(Math.random()*45+1));
// }
//
// //set의 중복제거성질을 이용하여 간단하게 로또번호 뽑기를 만들 수 있음.
//
// // 데이터가 순서가 없다보니 get메서드가 없음
// // set은 그냥 for문 돌려서 접근함
//
// for(Integer tmp : set) {
// System.out.println(tmp);
// }
//
// //하나에만 접근은 안됨....ㅠ
//set은 list 대비 사용빈도는 적지만, 중복제거용도로는 유용하다.
Map<String, Integer> map = new HashMap<>();
//Map은 Keyset과 Value로 구성된 Entry들을 저장한다.
//Keyset은 set의 성질을 가진다(중복제거, 순서없음)
map.put("One", 1);
map.put("Two", 2);
map.put("Three", 3);
map.put("Four", 4);
map.put("Five", 5);
map.put("Three", 100);
//set이 같은 값을 받으면 마지막값을 살리는 성질처럼, map도 동일한 성질을 가진다.
//key와 value를 쌍으로 이루는 자료형은 앞으로 많이 나오게 된다 (예:JSON)
//key값을 이용하면 쉽게 검색할 수 있다.
System.out.println(map.get("One"));
System.out.println(map.keySet());
System.out.println(map.values());
}
}