ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Collection(1) - List, Set, Map
    ๊ฐœ๋ฐœ/Java 2022. 2. 22. 01:01

     

     

     

    ์•ˆ๋…•ํ•˜์„ธ์š”,

     

    ์ด๋ฒˆ์—๋Š” ์ž๋ฐ”์—์„œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ธ ์ปฌ๋ ‰์…˜(Collection), ๊ทธ๋ฆฌ๊ณ  ๊ตฌ์ฒด์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ข…๋ฅ˜์ธ ๋ฆฌ์ŠคํŠธ(List), ์Šคํƒ(Stack) ,ํ(Queue),์…‹(Set),๋งต(Map)์˜ ๊ฐœ๋…๊ณผ ์˜ˆ์ œ ์ฝ”๋“œ๋ฅผ ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

     

    ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ž€?


    - ๋‹ค์ˆ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค์˜ ์ง‘ํ•ฉ์„ ์˜๋ฏธ
    - ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š”๋ฐ ํ•„์š”ํ•œ ํ’๋ถ€ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ํด๋ž˜์Šค์™€ ๊ธฐ๋ณธํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์œ ์šฉ
    - ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ชจ๋“  ํด๋ž˜์Šค๋Š” Collection interface๋ฅผ ๊ตฌํ˜„(implement)ํ•˜๋Š” ํด๋ž˜์Šค ๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค

     

     

    List


    ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ๋‚˜์—ด๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

    - Arraylist๋Š” ๋ฐฐ์—ด์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” List ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.

     

    //List - ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜๊ณ , ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•œ๋‹ค.
            List<Integer> integerList = new ArrayList<>();
            integerList.add(1);
            integerList.add(5);
            integerList.add(4);
            integerList.add(4);
            integerList.add(11);
            integerList.add(10); // ArrayList์— ๊ฐ’ ํ•œ๊ฐœ์”ฉ ์ž…๋ ฅ
            System.out.println(integerList); // [1,5,4,4,11,10]
    
            Collections.sort(integerList); // list ์ •๋ ฌ - ์˜ค๋ฆ„์ฐจ์ˆœ
            System.out.println(integerList); // [1,4,4,5,10,11]
            System.out.println(integerList.size()); // arrayList์˜ ํฌ๊ธฐ ์ถœ๋ ฅ
            integerList.remove(4); // ์ธ๋ฑ์Šค๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ•ด๋‹นํ•˜๋Š” ๊ฐ’ ์ œ๊ฑฐ
            System.out.println(integerList);
            for (int i = 0; i < integerList.size(); i++) {
                System.out.println(integerList.get(i)); // get์„ ์ด์šฉํ•˜์—ฌ ๊ฐ’ 1๊ฐœ์”ฉ ์ถœ๋ ฅ
            }
            for (int current : integerList) {
                System.out.println(current);
            }

     

    ์œ„์˜ ์ฝ”๋“œ๋ฅผ ๋ณด์‹œ๋ฉด, ์ˆœ์„œ๋Œ€๋กœ 1,5,4,4,11,10์„ ๋„ฃ์Šต๋‹ˆ๋‹ค. ์ถœ๋ ฅํ•ด๋ณด๋ฉด 1,5,4,4,11,10 ๊ทธ๋Œ€๋กœ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ, ๋˜ ์ค‘๋ณต๊ฐ’์ธ 4๋Š” ํ—ˆ์šฉ๋˜์–ด ๋ชจ๋‘ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์™ธ์— ๋ฐ‘์— ๋ถ€๋ถ„์€ ์ •๋ ฌ, ํฌ๊ธฐ, ์ œ๊ฑฐ, ๊ฐ’ ํ™•์ธ์— ๋Œ€ํ•œ ํ•จ์ˆ˜์‚ฌ์šฉ ๋ถ€๋ถ„์ด๋‹ˆ ์ฃผ์„์„ ์ฐธ๊ณ ํ•˜์—ฌ ๋ณด์‹œ๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค :)

     

     

    Set


    ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ์ด๋ฉฐ ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    - HashSet์€ Set ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ๋Œ€ํ‘œ์ ์ธ ์ปฌ๋ ‰์…˜์ž…๋‹ˆ๋‹ค.

     

    //Set - ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๊ณ , ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
            Set<Integer> integerSet = new HashSet<>();
            integerSet.add(1);
            integerSet.add(1); //์ค‘๋ณต ์•ˆ๋“ค์–ด๊ฐ.
            integerSet.add(3);
            integerSet.add(2);
            integerSet.add(9);
            integerSet.add(8);
            System.out.println(integerSet); //[1, 2, 3, 8, 9]
    
            Set<String> stringSet = new HashSet<>();
            stringSet.add("LA");
            stringSet.add("New York");
            stringSet.add("LasVegas");
            stringSet.add("San Francisco");
            stringSet.add("Seoul");
            System.out.println(stringSet);
    
            stringSet.remove("Seoul");
            System.out.println(stringSet);
    
            List<String> target = new ArrayList<>();
            target.add("New York");
            target.add("LasVegas");
            stringSet.removeAll(target); //ํ•œ๊บผ๋ฒˆ์— ์ง€์šฐ๊ธฐ - setํƒ€์ž…์— removeAllํ•˜๊ณ , Collection ํƒ€์ž…์„ ๋„ฃ์–ด์ฃผ๋ฉด, ๊ทธ๊ฒŒ ์ง€์›Œ์ง„๋‹ค.
            System.out.println(stringSet);
    
            System.out.println("LA ํฌํ•จ๋˜์–ด ์žˆ๋‚˜์š”? " + stringSet.contains("LA")); //true
            System.out.println("Seoul ํฌํ•จ๋˜์–ด ์žˆ๋‚˜์š”? " + stringSet.contains("Seoul")); //false
    
            System.out.println(stringSet.size());
            stringSet.clear(); //๋‹ค์ง€์šฐ๊ธฐ
            System.out.println(stringSet);

     

    ์œ„์˜ ์ฝ”๋“œ์—์„œ ๋ณด์•„์•ผ ํ• ๊ฒƒ์€, 1,1,3,2,9,8 ์ด๋ผ๋Š” ์ˆซ์ž๋ฅผ ๋„ฃ์—ˆ์„๋•Œ, ์ค‘๋ณต์ˆซ์ž์ธ 1์€ ํ•œ๋ฒˆ๋งŒ ๋“ค์–ด๊ฐ€๊ณ  ๋„ฃ์€ ์ˆซ์ž์˜ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์˜ค์ง€ ์•Š๋Š” ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ ์•„๋ž˜ ๋ถ€๋ถ„์€ ๋ถ€๋ถ„์ œ๊ฑฐ, ์—ฌ๋Ÿฌ๊ฐœ ํ•œ๊บผ๋ฒˆ์— ์ œ๊ฑฐ, ๊ฐ’ ํฌํ•จ์—ฌ๋ถ€ ํ™•์ธ, ๋ชจ๋‘ ์ œ๊ฑฐ์— ๋Œ€ํ•œ ํ•จ์ˆ˜ ์‚ฌ์šฉ์ž…๋‹ˆ๋‹ค. ์ฃผ์„์„ ์ฐธ๊ณ ํ•˜์—ฌ ํ™•์ธํ•ด์ฃผ์„ธ์š” :)

     

     

    Map


    - HashMap์€ ํ‚ค(key)์™€ ๊ฐ’(value)์„ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋กœ ์ €์žฅํ•˜๋Š” ํŠน์ง•์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•˜์—ฌ ํ•ด์‹ฑ(hashing)์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š”๋ฐ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๋ณด์ž…๋‹ˆ๋‹ค.

     

    //Map --> Key, Value๋ฅผ ๊ฐ€์ง„๋‹ค.
            Map<Integer, String> map = new HashMap<>();
            map.put(1, "apple");
            map.put(2, "berry");
            map.put(3, "cherry");
            System.out.println(map);
            System.out.println("1st in map: " + map.get(1)); //1์ด๋ผ๋Š” key์— ๋Œ€ํ•œ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ธฐ
            map.remove(2); //๋ถ€๋ถ„ ์ œ๊ฑฐ
            System.out.println(map);
            System.out.println(map.containsKey(2)); //ํ‚ค ํฌํ•จ์—ฌ๋ถ€
            System.out.println(map.containsValue("cherry")); //๊ฐ’ ํฌํ•จ์—ฌ๋ถ€
            map.clear(); //๋ชจ๋‘ ์ œ๊ฑฐ
            System.out.println(map);

     

    ์œ„์˜ ์ฝ”๋“œ๋ฅผ ๋ณด์‹œ๋ฉด, Integer(Keyํƒ€์ž…), String(Valueํƒ€์ž…)์œผ๋กœ Key์™€ Value์˜ ํƒ€์ž…์„ ์ง€์ •ํ•œ ๋’ค, ๋‹ค๋ฅธ ๊ฒƒ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ put์„ ์ด์šฉํ•˜์—ฌ (key, value)๋ฅผ ๋„ฃ์–ด์ฃผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ’์„ ๊บผ๋‚ด๊ณ  ์‹ถ์„๋•Œ๋Š” get(key๊ฐ’)์„ ํ†ตํ•ด์„œ ๊ฐ€์ ธ์˜ค๊ณ  ์žˆ๋„ค์š”. ๊ทธ ์•„๋ž˜์—๋Š” ์ œ๊ฑฐ, key์™€ value์˜ ํฌํ•จ์—ฌ๋ถ€, ์ผ๊ด„์ œ๊ฑฐ์— ๋Œ€ํ•œ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.  

     

     

    ์ •๋ฆฌ


    Collection ์€ ๋ชจ๋“  ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ๊ตฌํ˜„(implement)ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜ ๋ฐฐ์šด ๋ชจ๋“  ์ž๋ฃŒ๊ตฌ์กฐ์— ํ•ด๋‹นํ•˜๋Š” ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์–ธ์ œ๋‚˜ Collection ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

    List : ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ์ด๋ฉฐ ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
    → ArrayList, LinkedList, Stack ๋“ฑ
    Set : ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ์ด๋ฉฐ ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    → HashSet, TreeSet ๋“ฑ
    Map : ํ‚ค(key)์™€ ๊ฐ’(value)์˜ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. ์ˆœ์„œ๋Š” ์œ ์ง€๋˜์ง€ ์•Š์œผ๋ฉฐ ํ‚ค๋Š” ์ค‘๋ณต์„ ํ—ˆ์šฉ๋˜์ง€ ์•Š๊ณ  ๊ฐ’์€ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
    → HashMap, TreeMap ๋“ฑ


    ์ปฌ๋ ‰์…˜ ์ธํ„ฐํŽ˜์ด์Šค์—๋Š” ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ , ์ถ”๊ฐ€ํ•˜๊ณ  ์‚ญ์ œํ•˜๋Š” ๋“ฑ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š”๋ฐ ๊ธฐ๋ณธ์ ์ธ ๋ฉ”์†Œ๋“œ๋“ค์„ ์ •์˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 

     

     

     

    ๋‹ค์Œ ๊ธ€์— ์ด์–ด์„œ ์Šคํƒ๊ณผ ํ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค :)

     

     

     

     

     

    ๋Œ“๊ธ€

Designed by Tistory.