Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 네티 클라이언트
- 자료형
- 기초설정
- springboot
- Repository
- 클래스
- Kotlin
- recoil
- 배열
- Java
- toyproject
- Security
- react
- 도커
- 백엔드 설정
- MySQL
- JWT
- Spring
- 팀프로젝트
- 프로젝트
- 스프링부트
- 채팅
- 자바
- 네티 서버
- Spring Boot
- axios
- service
- netty
- controller
- 코틀린
Archives
- Today
- Total
hyuko
컬렉션(Set, Map) 본문
728x90
반응형
컬렉션
Set
- set 이란?
- 집합의 개념이다. 순서가 없고 중복도 불가하다.
- 선언방법
Set<T> set = new HashSet<>();
제네릭타입을 이용해서 안에 set에 들어갈 자료형을 넣어준다.
set 예시코드
public class SetStringMain {
public static void main(String[] args) {
Set<String> setStr = new HashSet<String>();
List<String> listStr = new ArrayList<String>();
listStr.add("신사임당");
listStr.add("세종대왕");
listStr.add("신사임당");
listStr.add("신사임당");
System.out.println(listStr);
setStr.add("홍길동");
setStr.add("김유신");
setStr.add("한석봉");
setStr.add("이순신"); // add 를 같은값을 여러번 한다해도 한번만 들어간다 set 의 특징
// setStr.add("이순신");
setStr.addAll(listStr);
System.out.println(setStr);
String searchName = "홍길동";
for (String name : setStr) {
if ((name.equals(searchName))){
System.out.println(name);
}
// System.out.println(name);
}
Iterator<String> iterator = setStr.iterator();
while (iterator.hasNext()) {
String n = iterator.next();
if (n.equals(searchName)){
System.out.println(n);
}
}
}
}
- 콘솔 실행화면
- set 에 객체를 넣어 진행
public class StudentHashSet {
private static Student searchStudent(Set<Student> students, String searchName) {
Student student = null;
for (Student value : students) {
if (value.getName().equals(searchName)){
student = value;
break;
}
}
return student;
}
public static void main(String[] args) {
Set<Student> students = new HashSet<Student>();
students.add(new Student("John", 20));
students.add(new Student("Marry", 23));
students.add(new Student("James", 22));
students.add(new Student("Bob", 24));
System.out.println(students);
Student student = searchStudent(students, "John");
if (student == null) {
System.out.println("검색실패!");
}else {
System.out.println("검색성공! " + student);
}
}
}
- 실행 후 콘솔화면
Map
- map 이란:
- key 와 value 로 이루어져 있다.
간단히 말하자면 key 는 set의 특징이, value는 list의 특징이 있다.
key는 중복이 불가하고, value는 중복이 허용이된다. - map의 선언방식
Map<key, value> map = new HashMap<>();
map 의 예제코드
public class MapStringMain {
public static void main(String[] args) {
Map<String, String> strMap = new HashMap<String, String>();
strMap.put("김유신", "a");
strMap.put("홍길동", "b");
strMap.put("이순신", "c");
strMap.put("한석봉", "d");
System.out.println(strMap);
// map 은 get 을 쓸 때 안에 키값을 넣어 value 값을 뽑아낼수 있다.
System.out.println(strMap.get("a"));
// key 값에 value 값이 없으므로 return 을 null 로 해준다.
System.out.println(strMap.get("e"));
for (String key : strMap.keySet()) {
// System.out.println(strMap.get(key));
System.out.println("key: " + key);
// System.out.println();
}
for (String value : strMap.values()) {
System.out.println("value: " + value);
}
System.out.println(strMap.entrySet());
// Set<Map.Entry<String, String>> s = null;
for (Map.Entry<String, String> strEntry: strMap.entrySet()) {
System.out.println(strEntry);
// entry 를 쓰게 되면 한쌍으로 값을 빼서 get 을 이용해서 key 와 value 값을 각각 뽑아낼수 있다.
System.out.println("key: " + strEntry.getKey());
System.out.println("value: " + strEntry.getValue());
}
System.out.println("================================================================");
strMap.forEach((k,v) -> {
System.out.println("key: " + k);
System.out.println("value: " + v);
});
}
}
- 실행 후 콘솔화면
위의 코드에서 알 수 있듯이 map 또한 제네릭으로 타입을 지정해서 변수들을 넣을 수 있다.
map 같은경우 값을 넣을 때 set과 list와 달리 put을 이용한다.
- map에 객체를 넣어 예제 실행
public class HashMapTest {
public static void main(String[] args) {
Map<String, Object> dataMap = new HashMap<String, Object>();
dataMap.put("username", "aaa");
dataMap.put("password", "1234");
dataMap.put("name", "홍길동");
dataMap.put("email", "aaa@gmail.com");
List<String> hobby = new ArrayList<>();
hobby.add("골프");
hobby.add("야구");
hobby.add("축구");
hobby.add("게임하기");
dataMap.put("hobbies", hobby);
// 작은 객체라고 생각을 한다 변수명을 key 라 생각을하고 value 를 값이라고 생각을한다. get 해서 가지고오는건 getter 를 사용해 들고 온다고 생각을한다.
System.out.println(dataMap);
List<String> hobbyList = (List<String>) dataMap.get("hobbies");
System.out.println(hobbyList.get(0));
}
}
- 코드 실행 후 콘솔 화면
위의 코드에서 알 수 있듯이 Object 객체가 들어올수 있음을 볼 수가 있다.
그렇다는건 map의 키값 밸류값들이 list, set, map 등 다양하게 들어올수 있다.
728x90
반응형
'Java > Java 고급편' 카테고리의 다른 글
Json 과 builder 패턴 (0) | 2023.04.24 |
---|---|
제네릭, 컬렉션 (0) | 2023.04.24 |
static 과 singletone pattern (0) | 2023.04.24 |
Object (0) | 2023.04.24 |
상속과 추상 그리고 인터페이스 (0) | 2023.04.24 |