๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
TIL

01/03(์ˆ˜) ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Java 8์ผ์ฐจ TIL - ๋ฐฐ์—ด, ์ปฌ๋ ‰์…˜

by ๊ฐ์ž๊ฐœ๋ฐœ๊พผ 2024. 1. 3.

๐Ÿ“–  ์˜ค๋Š˜์˜ ํ•™์Šต ํ‚ค์›Œ๋“œ

  • ๋ฐฐ์—ด
  • ์ปฌ๋ ‰์…˜

 

๐Ÿฅ”  ๋ฐฐ์—ด

1. ๋ฐฐ์—ด์˜ ๋ณต์‚ฌ

package week02.array;

public class Arr03 {

    public static void main(String[] args) {

//        int[] a = {1, 2, 3, 4};
//        int[] b = a; // ์–•์€ ๋ณต์‚ฌ
//
//        b[0] = 3;
//
//        System.out.println(a[0]);

//        int[] a = {1, 2, 3, 4};
//        int[] b = new int[a.length];
//
//        for (int i = 0; i < a.length; i++) {
//            b[i] = a[i]; // ๊นŠ์€ ๋ณต์‚ฌ
//        }
//
//        b[0] = 3;
//
//        System.out.println(a[0]); // ๊นŠ์€ ๋ณต์ˆ˜๋ฅผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— a ๋ฐฐ์—ด์€ ๊ทธ๋Œ€๋กœ.

        // ๊นŠ์€ ๋ณต์‚ฌ ๋ฉ”์„œ๋“œ

        // 1. clone() ๋ฉ”์„œ๋“œ
        int[] a = {1, 2, 3, 4};
        int[] b = a.clone();
        // ํ•˜์ง€๋งŒ, clone() ๋ฉ”์„œ๋“œ๋Š” 2์ฐจ์› ์ด์ƒ ๋ฐฐ์—ด์—์„œ๋Š” ์–•์€ ๋ณต์‚ฌ๋กœ ๋™์ž‘ํ•จ.
        
        // 2. Arrays.copyOf() ๋ฉ”์„œ๋“œ
        int[] a = {1, 2, 3, 4};
        int[] b = Arrays.copyOf(a, a.length); // ๋ฐฐ์—ด๊ณผ ํ•จ๊ณ„ length๊ฐ’๋„ ๊ฐ™์ด ๋„ฃ์–ด์คŒ.

        a[3] = 0;
        System.out.println(a[3]);
        System.out.println(b[3]);

    }
}

 

2. ๊ฐ€๋ณ€๋ฐฐ์—ด

package week02.array;

public class Arr06 {

    public static void main(String[] args) {

        // ๊ฐ€๋ณ€๋ฐฐ์—ด
        int[][] array = new int[3][];

        // ๋ฐฐ์—ด ์›์†Œ๋งˆ๋‹ค ๊ฐ๊ธฐ ๋‹ค๋ฅธ ํฌ๊ธฐ๋กœ ์ง€์ •
        array[0] = new int[2];
        array[1] = new int[4];
        array[2] = new int[1];

        // ์ค‘๊ด„ํ˜ธ๋กœ ์ดˆ๊ธฐํ™”๋ฅผ ์•„์˜ˆ ํ•ด๋ฒ„๋ฆด ๋•Œ๋„ ๊ฐ€๋Šฅํ•จ!
        int[][] array2 = {
                {10, 20},
                {10, 20, 30, 40},
                {10}
        };
    }
}

 

๐Ÿฅ”  ์ปฌ๋ ‰์…˜

  • List

์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ => Array ( ์ตœ์ดˆ ๊ธธ์ด๋ฅผ ์•Œ์•„์•ผ ํ•จ )

์ฒ˜์Œ์˜ ๊ธธ์ด๋ฅผ ๋ชฐ๋ผ๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ

1) Array -> ์ •์ ๋ฐฐ์—ด

2) List(ArrayList) -> ๋™์ ๋ฐฐ์—ด ( ํฌ๊ธฐ๊ฐ€ ๊ฐ€๋ณ€์ ์œผ๋กœ ๋Š˜์–ด๋‚œ๋‹ค )

     - ์ƒ์„ฑ ์‹œ์ ์— ์ž‘์€ ์—ฐ์†๋œ ๊ณต๊ฐ„์„ ์š”์ฒญํ•ด์„œ ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜๋“ค์„ ๋‹ด์•„๋†“๋Š”๋‹ค.

     - ๊ฐ’์ด ์ถ”๊ฐ€๋  ๋•Œ ๋” ํฐ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋ฉด ๋” ํฐ ๊ณต๊ฐ„์„ ๋ฐ›์•„์„œ ์ €์žฅํ•˜๋‹ˆ๊น. ์ƒ๊ด€์—†๋‹ค!

 

  • linked list

๋ฉ”๋ชจ๋ฆฌ์— ๋‚จ๋Š” ๊ณต๊ฐ„์„ ์š”์ฒญํ•ด์„œ ์—ฌ๊ธฐ์ €๊ธฐ ๋‚˜๋ˆ„์–ด์„œ ์‹ค์ œ ๊ฐ’์„ ๋‹ด์•„๋†“๋Š”๋‹ค.

์‹ค์ œ ๊ฐ’์ด ์žˆ๋Š” ์ฃผ์†Œ๊ฐ’์œผ๋กœ ๋ชฉ๋ก์„ ๊ตฌ์„ฑํ•˜๊ณ  ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.

 

๊ธฐ๋ณธ์  ๊ธฐ๋Šฅ์€ -> ArrayList์™€ ๋™์ผํ•˜๋‹ค.

LinkedList๋Š” ๊ฐ’ -> ์—ฌ๊ธฐ์ €๊ธฐ ๋‚˜๋ˆ„์–ด์„œ ์กฐํšŒํ•˜๋Š” ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค.

๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜, ์‚ญ์ œํ•  ๋•Œ๋Š” ๋น ๋ฅด๋‹ค.

 

  • Stack

์ˆ˜์ง์œผ๋กœ ๊ฐ’์„ ์Œ“์•„๋†“๊ณ , ๋„ฃ์—ˆ๋‹ค๊ฐ€ ๋บ€๋‹ค. FILO ( Basket )

push, peek, pop

์ตœ๊ทผ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜์—ดํ•˜๊ณ  ์‹ถ๊ฑฐ๋‚˜, ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต ์ฒ˜๋ฆฌ๋ฅผ ๋ง‰๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

 

  • Queue

๋นจ๋Œ€์ฒ˜๋Ÿผ ํ•œ์ชฝ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๊ณ  ๋ฐ˜๋Œ€์ชฝ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋บ„ ์ˆ˜ ์žˆ๋Š” ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค.

FIFO : ๋จผ์ € ๋“ค์–ด๊ฐ„ ์ˆœ์„œ๋Œ€๋กœ ๊ฐ’์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

add, peek, poll

์ƒ์„ฑ์ž๊ฐ€ ์—†๋Š” ์ธํ„ฐํŽ˜์ด์Šค

 

  • Set

์ˆœ์„œ ์—†๊ณ , ์ค‘๋ณต ์—†์Œ

์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š๋Š” ๋Œ€์‹  ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ

Set -> ๊ทธ๋ƒฅ ์“ธ ์ˆ˜๋„ ์žˆ์œผ๋‚˜, HashSet, TreeSet ๋“ฑ์œผ๋กœ ์‘์šฉํ•ด์„œ ๊ฐ™์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ

Set์€ ์ƒ์„ฑ์ž๊ฐ€ ์—†๋Š” ๊ป๋ฐ๊ธฐ๋ผ์„œ ๋ฐ”๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Œ

์ƒ์„ฑ์ž๊ฐ€ ์กด์žฌํ•˜๋Š” HashSet์„ ์ด์šฉํ•ด์„œ Set์„ ๊ตฌํ˜„ํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

  • Map

์—ฌํƒœ๊นŒ์ง€ value ๊ฐ’๋“ค๋งŒ ๋„ฃ์–ด์„œ ๊ด€๋ฆฌํ•˜๋Š” ๋ถ„๋ฅ˜ํ†ต(์ž๋ฃŒ๊ตฌ์กฐ)์„ ๋ฐฐ์› ๋‹ค๋ฉด Map์€ key-value ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ๋œ

๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Map : key - value pair -> ์ค‘์š”!

key๋ผ๋Š” ๊ฐ’์œผ๋กœ unique ํ•˜๊ฒŒ ๋ณด์žฅ์ด ๋ผ์•ผ ํ•จ

Map -> HashMap, TreeMap์œผ๋กœ ์‘์šฉ

 

 

๐Ÿ“š  ์˜ค๋Š˜์˜ ํšŒ๊ณ 

์˜ค๋Š˜์€ ์กฐ๊ธˆ ์ง‘์ค‘์ด ํํŠธ๋Ÿฌ์กŒ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‚ด์ผ์€ ์กฐ๊ธˆ ๋” ๋ถ„๋ฐœํ•ด์•ผ์ง€..

์–ด๋ ต๋‹ค ์ž๋ฐ”.