TIL๐Ÿ”ฅ

23.10.30 TIL

KIMHYEYUN 2023. 10. 30. 20:05
๋ฐ˜์‘ํ˜•

๊ฐœ์ธ ๊ณผ์ œ ํ”ผ๋“œ๋ฐฑ

๊ฐœ์ธ ๊ณผ์ œ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ณ  ์ˆ˜์ • ๋Œ์ž…!

๊ทธ ์™€์ค‘์—

Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.remove(AbstractList.java:161)

์—๋Ÿฌ ๋ฐœ์ƒ!
๋ฉ”๋‰ด ์‚ญ์ œ ๊ธฐ๋Šฅ์—์„œ ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ, ๊ฐ ๋ฉ”๋‰ด๋ฅผ ๋Œ๋ฉด์„œ ์ผ์น˜ํ•˜๋Š” ๊ฐ’์ด ๋ฐœ๊ฒฌํ•˜๋ฉด removeํ•จ์ˆ˜๋กœ ์ œ๊ฑฐํ•˜๋Š” ๋ถ€๋ถ„์ด์—ˆ๋‹ค.

items.forEach((key, value) -> {
            for (int i = 0; i < value.size(); i++) {
                if (value.get(i).getIndex() == id) {
                    value.remove(i);
                    break;
                }
            }
        });

์›์ธ์„ ์ฐพ๋‹ค๋ณด๋‹ˆ, ๋งจ ์ฒ˜์Œ์— ๊ฐ’์„ initํ•ด์ฃผ๋Š” ๋ถ€๋ถ„์—์„œ ํŽธํ•˜๊ฒŒ ํ•˜๋ ค๊ณ 

List<Menu> mainMenus = Arrays.asList(
                new Menu("Burgers", "์•ต๊ฑฐ์Šค ๋น„ํ”„ ํ†ต์‚ด์„ ๋‹ค์ ธ ๋งŒ๋“  ๋ฒ„๊ฑฐ"),
                new Menu("Frozen Custard", "๋งค์žฅ์—์„œ ์‹ ์„ ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์•„์ด์Šคํฌ๋ฆผ"),
                new Menu("Drinks", "๋งค์žฅ์—์„œ ์ง์ ‘ ๋งŒ๋“œ๋Š” ์Œ๋ฃŒ"),
                new Menu("Beer", "๋‰ด์š• ๋ธŒ๋ฃจํด๋ฆฐ ๋ธŒ๋ฃจ์–ด๋ฆฌ์—์„œ ์–‘์กฐํ•œ ๋งฅ์ฃผ")
        );        

์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ–ˆ๋Š”๋ฐ, Arrays.asList๋ฅผ ์ฐพ์•„๊ฐ€๋ณด๋ฉด Arrays.java ์—์„œ ArrayList๊ฐ€ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค. ์ฆ‰, java.util.ArrayList์™€ java.util.arrays.ArrayList๋กœ ๋‹ค๋ฅด๊ฒŒ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š” ๊ฒƒ์ด ๋ฌธ์ œ์˜€๋‹ค. java.util.ArrayList์™€ ๋‹ค๋ฅด๊ฒŒ java.util.arrays.ArrayList์—์„œ๋Š” remove ํ•จ์ˆ˜๊ฐ€ ๊ตฌํ˜„๋˜์–ด ์žˆ์ง€ ์•Š์•„ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋˜ ๊ฒƒ์ด๋‹ค!!

 * Returns a fixed-size list backed by the specified array.

Arrays.asList()๋Š” ์œ„์˜ ์ฃผ์„์ฒ˜๋Ÿผ ๊ณ ์ •๋œ ์‚ฌ์ด์ฆˆ์ด๋ฏ€๋กœ, remove๋‚˜ add ์ฒ˜๋Ÿผ ์‚ฌ์ด์ฆˆ๊ฐ€ ๋ณ€ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค!
๊ทธ๋ž˜์„œ ์œ„์˜ ์ฝ”๋“œ๋ฅผ

List<Menu> mainMenus = new ArrayList<>(Arrays.asList(
                new Menu("Burgers", "์•ต๊ฑฐ์Šค ๋น„ํ”„ ํ†ต์‚ด์„ ๋‹ค์ ธ ๋งŒ๋“  ๋ฒ„๊ฑฐ"),
                new Menu("Frozen Custard", "๋งค์žฅ์—์„œ ์‹ ์„ ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์•„์ด์Šคํฌ๋ฆผ"),
                new Menu("Drinks", "๋งค์žฅ์—์„œ ์ง์ ‘ ๋งŒ๋“œ๋Š” ์Œ๋ฃŒ"),
                new Menu("Beer", "๋‰ด์š• ๋ธŒ๋ฃจํด๋ฆฐ ๋ธŒ๋ฃจ์–ด๋ฆฌ์—์„œ ์–‘์กฐํ•œ ๋งฅ์ฃผ")
        ));

์ด๋ ‡๊ฒŒ ArrayList๋กœ ๊ฐ์‹ธ์ฃผ์ž ์˜ˆ์™ธ์—†์ด ์ž˜ ์ˆ˜ํ–‰๋๋”ฐ!!!!!
๋ญ”๊ฐ€ ํŽธ์˜์„ฑ์„ ์œ„ํ•ด ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ์ž์„ธํžˆ ์ž˜ ์•Œ๊ณ  ์“ฐ์ง€ ์•Š์œผ๋ฉด ์—ฌ๊ธฐ์ €๊ธฐ์„œ ์˜ˆ์™ธ, ์—๋Ÿฌ๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฑฐ ๊ฐ™๋‹ค......

728x90
๋ฐ˜์‘ํ˜•