PS/Data Structure

[๊ฐœ๋…] Array vs List, List

chaerlo127 2022. 4. 9. 16:47
728x90

โœจ  List vs Array ์ €์žฅ

๋‘˜ ๋‹ค, ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅ๋˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๋ณตํ•˜์—ฌ ์ €์žฅ ๊ฐ€๋Šฅ

Array๋Š” ์–ด๋–ค ๋ฐ์ดํ„ฐ ์ €์žฅ ์œ„์น˜๊ฐ€ ์ค‘์š”ํ•จ. (index) ์ฃผ์†Œ๋ฅผ ๊ฐ–๊ณ  ๋ฐ”๋กœ ์ฐพ์•„๊ฐˆ ์ˆ˜ ์žˆ์Œ

array[0] = 10;
array[1] = 20;
array[2] = 30;
array[3] = 40;

array์—์„œ index 3์— 50์˜ ๊ฐ’์„ ๋„ฃ๊ฒŒ ๋˜๋ฉด 40 ์œ„์— ๋ฎ์–ด์”Œ๊ฒŒ ๋œ๋‹ค.

array[0] = 10;
array[1] = 20;
array[2] = 30;
array[3] = 50;

 

 

List๋„ index๊ฐ€ ์ค‘์š”ํ•˜์ง€๋งŒ, element์˜ ๋‹ค์Œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌด์—‡์ธ์ง€๊ฐ€ ๋” ์ค‘์š”ํ•จ.

๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•จ. 

list[0] = 10;
list[1] = 20;
list[2] = 30;
list[3] = 40;

array์—์„œ index 3์— 50์˜ ๊ฐ’์„ ๋„ฃ๊ฒŒ ๋˜๋ฉด 40 ์€ ๋’ค๋กœ ๋ฐ€๋ ค์„œ ์ €์žฅ๋œ๋‹ค.

list[0] = 10;
list[1] = 20;
list[2] = 30;
list[3] = 50;
list[4] = 40; //array์™€ ๋‹ค๋ฅธ ์ฐจ์ด

 

โœจ  List vs Array ์‚ญ์ œ

Array๋Š” ์‚ญ์ œ ๋˜๋ฉด ์‚ญ์ œ ๋œ ๊ณณ์€ ์•„๋ฌด ๊ฐ’๋„ ์—†์ด ์ €์žฅ๋˜์–ด ์žˆ์„ ๊ฒƒ

๊ทธ๋งŒํผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์ฐจ์ง€ํ•˜๊ณ  ์žˆ์„ ๊ฒƒ, ์‚ญ์ œ๋ฅผ ํ•˜๋”๋ผ๋„ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ฐจ์ง€ํ•˜๊ณ  ์žˆ์„ ๊ฒƒ

array[0] = 10;
array[1] = 20;
array[2] = 30;
array[3] = 40;

//array[2] ์‚ญ์ œ์‹œ

array[0] = 10;
array[1] = 20;
//๊ฐ’์ด ์—†์Œ default  ๊ฐ’์ด ์žˆ์„ ๊ฒƒ
array[3] = 40;

 

List๋Š” ๋’ค์˜ ๊ฐ’์ด ์•ž์˜ ๊ฐ’์„ ์ฑ„์›Œ ๋„ฃ์Œ.

array[0] = 10;
array[1] = 20;
array[2] = 30;
array[3] = 40;

//array[2] ์‚ญ์ œ์‹œ

array[0] = 10;
array[1] = 20;
array[2] = 40;

 


โœจ  List ๊ธฐ๋Šฅ

  • ์ฒ˜์Œ, ์ค‘๊ฐ„, ๋์— ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์ถ”๊ฐ€/์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ–๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • ๋ฆฌ์ŠคํŠธ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ์ง€ ์ฒดํฌํ•˜๋Š” ๊ธฐ๋Šฅ
  • ๋ฆฌ์ŠคํŠธ์— ๋ชจ๋“  ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ

 

์ถ”๊ฐ€ ํ•  ๋•Œ, ์ถ”๊ฐ€๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ์ž๋ฆฌ ๋’ค์— ๋ฐ์ดํ„ฐ๋“ค์ด ํ•œ ์นธ์”ฉ ๋’ค๋กœ ๋ฐ€๋ ค๋‚˜๊ฐ€๋Š” ๊ฒƒ

 

โœจ  List ์ง€์›

  • C: ์ง€์› ์•ˆํ•จ, ์ง์ ‘ ๋งŒ๋“ค๊ฑฐ๋‚˜ ๋‹ค๋ฅธ์‚ฌ๋žŒ์ด ๋งŒ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉ, list์— ๋Œ€ํ•œ ์ง€์‹์€ ์ •๋ง ์ค‘์š”ํ•จ

 

  • JavaScript: ์ง€์›ํ•จ, C Family Language -> ๋ฐฐ์—ด์ด ๋ฆฌ์ŠคํŠธ ์—ญํ• 
numbers = [10, 20, 30, 40, 50];
numbers.splice(3, 1); // index 3๋ถ€ํ„ฐ ์ฒซ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ ๊ฐ’๊นŒ์ง€ ์‚ญ์ œ
//[40] ์‚ญ์ œ ํ›„, 50์ด 40์˜ ์ž๋ฆฌ๋ฅผ ์ฐจ์ง€

for(i = 0; i<numebrs.length;i++){
	console.log(numbers[i]);
}

 

  • Python: ๋ฐฐ์—ด์„ ๊ธฐ๋ณธ์  ์ง€์› ์•ˆํ•จ, ๋ฆฌ์ŠคํŠธ ์ง€์› -> ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋ฐฐ์—ด ์—ญํ• 
numbers = [10, 20, 30, 40, 50];

numbers.pop(3);

for number in numbers:
	print(number);

 

  • Java: ๋ฐฐ์—ด๊ณผ ๋ฆฌ์ŠคํŠธ๋ฅผ ์™„์ „ํžˆ ๋‹ค๋ฅธ ๋ฌธ๋ฒ•์œผ๋กœ ์ œ๊ณต(๋ถ„๋ฆฌ๋จ), ๋ฐฐ์—ด๊ณผ ๋ฆฌ์ŠคํŠธ ๋ชจ๋‘ ์ง€์›

Java๋Š” ๋‘๊ฐ€์ง€ ํ˜•ํƒœ์˜ List๋ฅผ ์ง€์› (ArrayList, LinkedList)

 

 1. ArrayList: ์ถ”๊ฐ€ ์‚ญ์ œ ๋Š๋ฆผ, ์ธ๋ฑ์Šค ์กฐํšŒ ๋น ๋ฆ„

 2. LinkedList: ์ถ”๊ฐ€ ์‚ญ์ œ ๋น ๋ฆ„, ์ธ๋ฑ์Šค ์กฐํšŒ ๋Š๋ฆผ

 

๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ด๋ƒ์— ๋”ฐ๋ผ์„œ ์ง์ ‘ ์„ ํƒ

//๋ฐฐ์—ด
int[] numbers = {10, 20, 30, 40, 50};

//ArrayList
ArrayList numbers = new ArrayList();
numbers.add(10);
numbers.add(20);
numbers.add(30);
numbers.add(40);
numbers.add(50);
numbers.remove(3);

//LinkedList
LinkedList numbers = new LinkedList();

 -> ์ตœ๊ทผ์˜ ์–ธ์–ด๋“ค์€ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›, ๋ฆฌ์ŠคํŠธ์ฒ˜๋Ÿผ ๋ฐฐ์—ด์„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

728x90