✔️ 자바 컬렉션 프레임워크 API
: 자바에서 제공하는 데이터 구조인 컬랙선을 표현하는 인터페이스와 클래스의 모음(API)이다.
✔️ Wrapper(포장) 클래스
- 기본 데이터 타입(primitive data type)을 객체로 다룰 수 있도록 만들어진 크랠스
- wrapper 클래스를 사용하면 자동으로 박싱(boxting)과 언박싱(unboxing)이 이루어진다.
package fc.java.course2.part2;
public class WrapperTest {
public static void main(String[] args) {
//정수형 변수에 10을 저장하세요.
int a = 10; //기본 자료형
// Integer aa = new Integer(10); //사용자 자료형
Integer aa = 10; //new Integer(10)으로 자동 변환 -> Auto-boxing
System.out.println(aa.intValue()); //unboxing(Integer -> int)
Integer bb = 20; //Auto-boxing
int b = bb; // Auto-Unboxing
float f = 10.5f;
Float ff = 45.6f;
System.out.println(ff.floatValue());
Float af = 49.1f;
float aff = af; // af.floatValue() -> Auto-boxing
System.out.println(aff);
}
}
✔️ Collection Framwork API란
: 자바에서 제공하는 데이터 구조인 컬렉션(Collection)을 표현하는 인터페이스와 클래스의 모음
이 API를 사용하면 개발자가 데이터를 저장하고 관리하는 다양한 방법을 제공
인터페이스/클래스 | 설명 | 분류 |
List | 순서가 있는 객체의 모음을 다루는 인터페이스 | List |
ArrayList | List 인터페이스를 구현하는 클래스 | List |
LinkedList | List 인터페이스를 구현하는 클래스 | List |
Set | 중복된 원소가 없는 객체의 모음을 다루는 인터페이스 | Set |
HashSet | Set 인터페이스를 구현하는 클래스 | Set |
TreeSet | SortedSet 인터페이스를 구현하는 클래스 | Set |
Map | 키-쌍 값의 객체를 다루는 인터페이스 | Map |
HashMap | Map 인터페이스를 구형하는 클래스 | Map |
TreeMap | SortedMap 인터페이스를 구현하는 클래스 | Map |
✔️ 순서가 있고 중복 가능한 List API
package fc.java.course2.part2;
import java.util.ArrayList;
public class ListExample {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("apple"); // new String("apple")
list.add("banana");
list.add("cherry");
list.add("banana");
System.out.println(list.get(0));
System.out.println(list.get(1));
System.out.println(list.get(2));
System.out.println(list.get(list.size() - 1));
list.remove(0);
for(String str : list){
System.out.println(str);
}
}
}
package fc.java.course2.part2;
import java.util.ArrayList;
public class MovieListExample {
public static void main(String[] args) {
ArrayList<Movie> list = new ArrayList<Movie>();
list.add(new Movie("괴물", "봉준호","2006","한국"));
list.add(new Movie("기생충", "봉준호","2019","한국"));
list.add(new Movie("완벽한 타인", "이재규","2018","한국"));
for(Movie m : list){
System.out.println(m);
}
System.out.println("+------------+--------+---------+--------+---------+--------+");
System.out.println("영화감독 |감독 |개봉년도 |국가 |");
for(Movie m : list){
System.out.printf("|%-10s|%-7s|%-7s|%-7s|", m.getTitle(), m.getDirector(), m.getYear(), m.getCountry());
System.out.println();
}
System.out.println("+----- ----+--------+---------+--------+---------+--------+");
String searchTitle = "기생충";
// 순차검색 -> 이진검색(*)
for(Movie m : list){
if(m.getTitle().equals(searchTitle)){
System.out.println("제목: " + m.getTitle());
System.out.println("감독: " + m.getDirector());
System.out.println("개봉년도: " + m.getYear());
System.out.println("국가: " + m.getCountry());
break;
}
}
}
}
✔️ 순서가 없고 중복 불가능한 Set API
package fc.java.course2.part2;
import java.util.HashSet;
import java.util.Set;
public class HashSetExample {
public static void main(String[] args) {
Set<String> set = new HashSet<>();
set.add("Apple");
set.add("Banana");
set.add("Cherry");
set.add("Apple"); //중복 X
System.out.println(set.size());
for(String element: set){
System.out.println(element);
}
set.remove("Banana");
for(String element: set){
System.out.println(element);
}
boolean contains = set.contains("Cherry");
System.out.println("Set contains Cherry?" + contains); //true
set.clear();
boolean empty = set.isEmpty();
System.out.println("Set is empty?" + empty);
}
}
package fc.java.course2.part2;
import java.util.HashSet;
import java.util.Set;
public class UniqueNumbers {
public static void main(String[] args) {
int[] nums = {1, 2, 3, 4, 5, 2, 4, 6, 7, 1, 3};
Set<Integer> uniqueNums = new HashSet<>();
for(int number:nums){
uniqueNums.add(number);
}
System.out.println("Unique numbers....");
for(int number : uniqueNums){
System.out.println(number);
}
}
}
✔️ Key-Value로 데이터를 관리하는 Map API
package fc.java.course2.part2;
import java.util.HashMap;
import java.util.Map;
public class MapExample {
public static void main(String[] args) {
Map<String, Integer> stdScore = new HashMap<>();
stdScore.put("Kim", 95);
stdScore.put("Lee", 85);
stdScore.put("Park", 90);
stdScore.put("Choi", 80);
System.out.println("Kim's score: " + stdScore.get("Kim"));
stdScore.put("Park", 92);
System.out.println("Park's score: " + stdScore.get("Park"));
stdScore.remove("Choi");
System.out.println("Choi's score: " + stdScore.get("Choi"));
for(Map.Entry<String, Integer> entry : stdScore.entrySet()){
System.out.println(entry.getKey() + "'s score " + entry.getValue());
}
}
}
package fc.java.course2.part2;
import java.util.HashMap;
import java.util.Map;
public class CharacterCount {
public static void main(String[] args) {
String str = "Hello, World";
Map<Character, Integer> charCountMap = new HashMap<>();
char[] strArray = str.toCharArray(); //{'H', 'E', 'l', 'l', 'o', .... }
for(char c : strArray){
if(charCountMap.containsKey(c)){
charCountMap.put(c, charCountMap.get(c) + 1);
} else {
charCountMap.put(c, 1);
}
}
System.out.println("Charater Counts");
for(char c : charCountMap.keySet()){
System.out.println(c + ":" + charCountMap.get(c));
}
}
}
'Java > API' 카테고리의 다른 글
JAVA API - 인터페이스 기반의 프로그래밍 (0) | 2024.07.30 |
---|
댓글