////
Search
โ˜•

Java

ArrayList
โ€ข
ArrayList ๋‚ด์— ์„ ์–ธ๋œ ๋ฐฐ์—ด์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ๋‹ค.
โ€ข
size๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์žˆ๋‹ค.
๋ฌธ์ œํ’€์ด
์ฑ•ํ„ฐ 30 : ArrayList
//code.oa.gg/java8/993 // ๋ฌธ์ œ : ๋ฐฐ์—ด์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•œ ArrayList ๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”. ์•„๋ž˜์™€ ๊ฐ™์ด ์ถœ๋ ฅ๋˜๋„๋ก ํ•ด์ฃผ์„ธ์š”. add ํ•จ์ˆ˜์—์„œ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ์ž๋™์œผ๋กœ ๋Š˜์–ด๋‚˜๋„๋ก ํ•ด์ฃผ์„ธ์š”. import java.util.Arrays; class Main { public static void main(String[] args) { ArrayList ar = new ArrayList(); ar.add(100); ar.add(200); ar.add(300); ar.add(400); int value = ar.get(0); System.out.println(value); // ์ถœ๋ ฅ : 100 value = ar.get(1); System.out.println(value); // ์ถœ๋ ฅ : 200 value = ar.get(2); System.out.println(value); // ์ถœ๋ ฅ : 300 value = ar.get(3); System.out.println(value); // ์ถœ๋ ฅ : 400 } } class ArrayList { int[] datas; int lastIndex = -1; ArrayList() { datas = new int[3]; // ์ด ๋ถ€๋ถ„์€ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. } void add(int data) { lastIndex++; if (lastIndex >= datas.length) { int[] temps = Arrays.copyOf(datas,lastIndex * 2); datas = temps; } datas[lastIndex] = data; } int get(int index) { return datas[index]; } }
Java
๋ณต์‚ฌ
//code.oa.gg/java8/997 // ๋ฌธ์ œ : ์•„๋ž˜ ์ฝ”๋“œ๊ฐ€ ์ž‘๋™ํ•˜๋„๋ก ํ•ด์ฃผ์„ธ์š”. class Main { public static void main(String[] args) { ArrayList ar = new ArrayList(); ar.add(100); ar.add(200); ar.add(300); ar.add(400); ar.remove(2); int value = ar.get(2); System.out.println(value); // ์ถœ๋ ฅ : 400 ar.remove(0); value = ar.get(0); System.out.println(value); // ์ถœ๋ ฅ : 200 ar.add(78); value = ar.get(2); System.out.println(value); // ์ถœ๋ ฅ : 78 } } class ArrayList { int[] datas; int lastIndex = -1; ArrayList() { datas = new int[3]; // ์ด ๋ถ€๋ถ„์€ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. } void add(int data) { if ( lastIndex + 1 >= datas.length ) { // ํ™•์žฅ๊ณต์‚ฌ // ๊ธฐ์กด๋ฒ„์Šค ๋ฒ„๋ฆฌ๊ณ  ์ƒˆ ๋ฒ„์Šค๋กœ ์—ฐ๊ฒฐ!! // datas ์ด ๋…€์„์ด ๊ธฐ์กด ๋ฒ„์Šค๋ฅผ ๋ฒ„๋ฆฌ๊ณ  ์ƒˆ ๋ฒ„์Šค๋ฅผ ๊ฐ€๋ฆฌ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค. // ์ƒˆ ๋ฒ„์Šค ์ƒ์„ฑ int[] newArr = new int[datas.length * 2]; // ๊ธฐ์กด ๋ฒ„์Šค(๋ฐฐ์—ด)๋ฅผ ๋ฒ„๋ฆฌ๊ธฐ ์ „์— ๋ฒ„์Šค์— ์žˆ๋˜ ์Šน๊ฐ๋“ค์„ ์ƒˆ ๋ฒ„์Šค๋กœ ์˜ฎ๊ธด๋‹ค. for ( int i = 0; i < datas.length; i++ ) { newArr[i] = datas[i]; } datas = newArr; } lastIndex++; datas[lastIndex] = data; } int get(int index) { return datas[index]; } int size() { return lastIndex + 1; } void remove(int index) { for (int i=index; i < lastIndex; i++) { datas[i] = datas[i + 1]; } lastIndex--; } }
Java
๋ณต์‚ฌ
// code.oa.gg/java8/1340 // ๋ฌธ์ œ : ์•„๋ž˜ ์ฝ”๋“œ๊ฐ€ ์ž‘๋™ํ•˜๋„๋ก ํ•ด์ฃผ์„ธ์š”. class Main { public static void main(String[] args) { ArrayList ar = new ArrayList(); ar.add(100, 0); ar.add(200, 1); ar.add(300, 2); ar.add(400, 3); ar.add(500, 4); ar.add(600, 2); // 2๋ฒˆ์ขŒ์„์œผ๋กœ ์ƒˆ์น˜๊ธฐ, ๊ธฐ์กด์˜ 2๋ฒˆ์ขŒ์„ ์†๋‹˜๋ถ€ํ„ฐ ๋ ์†๋‹˜๊นŒ์ง€ ๋’ค๋กœ ํ•œ์นธ์”ฉ ๋ฐ€๋ฆฐ๋‹ค. ar.add(700, 0); // 0๋ฒˆ์ขŒ์„์œผ๋กœ ์ƒˆ์น˜๊ธฐ, ๊ธฐ์กด์˜ 0๋ฒˆ์ขŒ์„ ์†๋‹˜๋ถ€ํ„ฐ ๋ ์†๋‹˜๊นŒ์ง€ ๋’ค๋กœ ํ•œ์นธ์”ฉ ๋ฐ€๋ฆฐ๋‹ค. for ( int i = 0; i < ar.size(); i++ ) { int value = ar.get(i); System.out.println(i + " : " + value); } // ์ถœ๋ ฅ // 0 : 700 // 1 : 100 // 2 : 200 // 3 : 600 // 4 : 300 // 5 : 400 // 6 : 500 } } class ArrayList { int[] datas; int lastIndex = -1; ArrayList() { datas = new int[3]; // ์ด ๋ถ€๋ถ„์€ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. } void add(int data) { extendDatasSizeIfNeed(); lastIndex++; datas[lastIndex] = data; } void add(int data, int index) { extendDatasSizeIfNeed(); lastIndex++; for (int i = lastIndex; i > index; i--) { datas[i] = datas[i - 1]; } datas[index] = data; } void extendDatasSizeIfNeed() { if ( lastIndex + 1 >= datas.length ) { // ํ™•์žฅ๊ณต์‚ฌ // ๊ธฐ์กด๋ฒ„์Šค ๋ฒ„๋ฆฌ๊ณ  ์ƒˆ ๋ฒ„์Šค๋กœ ์—ฐ๊ฒฐ!! // datas ์ด ๋…€์„์ด ๊ธฐ์กด ๋ฒ„์Šค๋ฅผ ๋ฒ„๋ฆฌ๊ณ  ์ƒˆ ๋ฒ„์Šค๋ฅผ ๊ฐ€๋ฆฌ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค. // ์ƒˆ ๋ฒ„์Šค ์ƒ์„ฑ int[] newArr = new int[datas.length * 2]; // ๊ธฐ์กด ๋ฒ„์Šค(๋ฐฐ์—ด)๋ฅผ ๋ฒ„๋ฆฌ๊ธฐ ์ „์— ๋ฒ„์Šค์— ์žˆ๋˜ ์Šน๊ฐ๋“ค์„ ์ƒˆ ๋ฒ„์Šค๋กœ ์˜ฎ๊ธด๋‹ค. for ( int i = 0; i < datas.length; i++ ) { newArr[i] = datas[i]; } datas = newArr; } } int get(int index) { return datas[index]; } int size() { return lastIndex + 1; } }
Java
๋ณต์‚ฌ
// ๋ฌธ์ œ : ์•„๋ž˜๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ํ•ด์ฃผ์„ธ์š”. // ์กฐ๊ฑด : ArrayList ๊ฐ์ฒด์—์„œ ๋‚ด๋ถ€์ ์œผ๋กœ Object ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. // ์กฐ๊ฑด : Object ๋ฐฐ์—ด์˜ ์ดˆ๊ธฐ ๊ธธ์ด๋Š” 2 ์ž…๋‹ˆ๋‹ค. // ์กฐ๊ฑด : ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋Š” ์ž๋™์œผ๋กœ ์ฆ๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. // ์กฐ๊ฑด : ์—˜๋ฆฌ๋จผํŠธ(๊ตฌ์„ฑ์š”์†Œ)๋ฅผ ํ•˜๋‚˜ ์‚ญ์ œํ•˜๋ฉด ํ•ด๋‹น ์š”์†Œ ๋’ค์˜ ์š”์†Œ๋“ค์ด ์ „๋ถ€ ์•ž์œผ๋กœ ํ•œ์นธ์”ฉ ์›€์ง์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. // ์กฐ๊ฑด : ArrayList์˜ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋Š” 2๊ฐœ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. // ์กฐ๊ฑด : ์™ธ๋ถ€์—์„œ ํ˜ธ์ถœํ•˜์ง€ ์•Š๋Š” ์†์„ฑ์€ private ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์—ฌ์ฃผ์„ธ์š”. // ์กฐ๊ฑด : ์ค‘๋ณต์„ ์ตœ๋Œ€ํ•œ ์ œ๊ฑฐํ•ด์ฃผ์„ธ์š”. // ์กฐ๊ฑด : ์‚ฌ์šฉํ•˜๋Š” ๋ณ€์ˆ˜์™€ if๋ฌธ, for๋ฌธ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ฐ€๋…์„ฑ์„ ๋–จ์–ด๋œจ๋ฆฌ์ง€ ์•Š๋Š” ์„ ์—์„œ ์ตœ๋Œ€ํ•œ ์ค„์—ฌ์ฃผ์„ธ์š”. import java.util.Arrays; class Main { public static void main(String[] args) { ArrayList al = new ArrayList(); System.out.println("al.size() : " + al.size()); // ์ถœ๋ ฅ => al.size() : 0 al.add(100); System.out.println("al.get(0) : " + al.get(0)); // ์ถœ๋ ฅ => al.get(0) : 100 al.add(200); al.add(300); // ์ถœ๋ ฅ => ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 2 => 4 System.out.println("al.size() : " + al.size()); // ์ถœ๋ ฅ => al.size() : 3 System.out.println("al.get(1) : " + al.get(1)); // ์ถœ๋ ฅ => al.get(1) : 200 al.removeAt(1); System.out.println("al.size() : " + al.size()); // ์ถœ๋ ฅ => al.size() : 2 System.out.println("al.get(1) : " + al.get(1)); // ์ถœ๋ ฅ => al.get(1) : 300 al.add(400); al.add(500); al.add(600); // ์ถœ๋ ฅ => ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 4 => 8 System.out.println("al.get(3) + al.get(4) : " + (al.get(3) + al.get(4))); // ์ถœ๋ ฅ => al.get(3) + al.get(4) : 1100 System.out.println("al.get(3).intValue() + al.get(4).intValue() : " + (al.get(3).intValue() + al.get(4).intValue())); // ์ถœ๋ ฅ => al.get(3) + al.get(4) : 1100 al.showAllValues(); // ์ถœ๋ ฅ => /* == ์ „์ฒด ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ == 0 : 100 1 : 300 2 : 400 3 : 500 4 : 600 */ al.add(700, 1); al.add(750, 1); al.showAllValues(); // ์ถœ๋ ฅ => /* == ์ „์ฒด ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ == 0 : 100 1 : 750 2 : 700 3 : 300 4 : 400 5 : 500 6 : 600 */ } } class ArrayList { private Object[] arr; private int lastIndex; ArrayList() { arr = new Object[2]; lastIndex = -1; } void add(int data) { add(data, lastIndex + 1); } void add(int data, int index) { extendArrIfNeed(); lastIndex++; for (int i=lastIndex; i>index; i--) { arr[i] = arr[i - 1]; } arr[index] = data; } void extendArrIfNeed() { if (lastIndex + 1 >= arr.length) { Object[] temp = Arrays.copyOf(arr, arr.length * 2); arr = temp; } } void removeAt(int index) { for (int i = index; i < lastIndex; i++) { arr[i] = arr[i + 1]; } lastIndex --; } int size() { return lastIndex + 1; } Integer get(int index) { return (Integer)arr[index]; } void showAllValues() { for (int i=0; i<=lastIndex; i++) { System.out.println(arr[i]); } } }
Java
๋ณต์‚ฌ