유디의 공간정보·개발일기
7-2. 0713_ Hashmap 본문
- House class 에 Dog와 Cat 의 ArrayList를 각각 만들고 dogs =, cats = 초기값을 줌
[House]
package com.lx.animal;
import java.util.ArrayList;
public class House {
public ArrayList<Dog> dogs = new ArrayList<Dog>();
public ArrayList<Cat> cats = new ArrayList<Cat>();
}
[Cat]
package com.lx.animal;
public class Cat {
public String name;
public Cat() {
}
public Cat(String name) {
this.name = name;
}
}
[Test1]
package com.lx;
import java.util.ArrayList;
import java.util.HashMap;
import com.lx.animal.Cat;
import com.lx.animal.Dog;
import com.lx.animal.House;
public class Test1 {
public static void main(String[] args) {
House house1 = new House();
Dog dog1 = new Dog();
house1.dogs.add(dog1);
System.out.println("집 안에 있는 강아지 수 : " + house1.dogs.size());
Cat cat1 = new Cat("냥이1");
house1.cats.add(cat1);
house1.cats.add(new Cat("냥이2")); //line21과 같은 것
System.out.println("집 안에 있는 고양이 수 : " + house1.cats.size());
Cat outCat = house1.cats.get(house1.cats.size()-1);
System.out.println(" : " + outCat.name);
//Map 사용하기
HashMap<String, String> map1 = new HashMap<String, String>();
map1.put("사람1", "홍길동1");
map1.put("사람2", "홍길동2");
map1.put("사람3", "홍길동3");
String outName = map1.get("사람2");
System.out.println("사람2의 이름 : " + outName);
//(응용)
HashMap<String, ArrayList> map2 = new HashMap<String, ArrayList>();
map2.put("강아지", house1.dogs);
map2.put("고양이", house1.cats);
Cat outCat2 = (Cat) map2.get("고양이").get(0);
System.out.println("첫번째 고양이의 이름 : " + outCat2.name);
}
}
- HashMap<이름, 값>
key/name, value가 쌍으로 들어가야 한다.
< > 안에 넣을 값의 타입(크기)을 명시해야 한다.
- 값을 넣을 때 put, 값을 가져올 때 get (이름을 키값으로)
- 해쉬맵은 동일한 이름(값)이 있으면 덮어씌운다.
vs. ArrayList는 계속 추가된다.
Cat outCat2 = (Cat) map2.get("고양이").get(0);
- 해쉬맵의 / 고양이들이 들어가있는 arraylist의 / 첫번째(=0번지) 고양이를 가져온다.
- House 말고 cat이 타입이 될 수 있도록 타입캐스팅을 해준다. (cat)
'JAVA' 카테고리의 다른 글
H2. 0719_ JAVA 기초2, 응용 과제 (0) | 2021.10.31 |
---|---|
H1. 0716_ JAVA 기초 (0) | 2021.10.31 |
7-1. 0713_ Interface, Abstract class (0) | 2021.10.24 |
6. 0712_ try-catch절, Getter and Setter (0) | 2021.10.24 |
5. 0709_ 널체크(Null Check), ArrayList (0) | 2021.10.23 |