JAVA API - 모아, 모아 컬랙션(Collection) API

    ✔️ 자바 컬렉션 프레임워크 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

    댓글