๐Ÿ’ป/JAVA

[Java] 16์ผ์ฐจ : ์ปฌ๋ ‰์…˜(Collection)

๋”ฐ๊ถˆ 2024. 3. 11. 14:09

 

 

์ปฌ๋ ‰์…˜ ํ”„๋ผ์ž„์›Œํฌ๋ž€?
์ปฌ๋ ‰์…˜์€ ๋‹ค์ˆ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ํ‘œ์ค€ํ™”, ์ •ํ˜•ํ™”๋œ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ(ํ‹€)
๋‹ค์ˆ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œ์ค€ํ™”๋œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค์˜ ์ง‘ํ•ฉ



์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ๊ตฌ์„ฑ ์š”์†Œ 

  • ์ธํ„ฐํŽ˜์ด์Šค(interface) : ๊ธฐ๋ณธ์ ์œผ๋กœ ์ปฌ๋ ‰์…˜์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.
  • ๊ตฌํ˜„(implement) ํด๋ž˜์Šค : ์ปฌ๋ ‰์…˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค, ๊ฐ ์ปฌ๋ ‰์…˜์„ ์‹ค์ œ ์–ด๋–ค ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ‘œํ˜„ํ–ˆ๋А๋ƒ์— ๋”ฐ๋ผ, ์ปฌ๋ ‰์…˜์˜ ์ข…๋ฅ˜๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค.
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜(algorithms) : ๊ฐ ์ปฌ๋ ‰์…˜๋งˆ๋‹ค ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์˜๋ฏธ\

์ธํ„ฐํŽ˜์ด์Šค ๊ณ„์ธต

 

 

์ฃผ์š” ์ปฌ๋ ‰์…˜ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ตฌํ˜„ ํด๋ž˜

 

 

 

List<E> ์ธํ„ฐํŽ˜์ด์Šค 

  • ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ์ปฌ๋ ‰์…˜
  • ๋ชฉ๋ก์—์„œ ๊ฐ ์š”์†Œ๊ฐ€ ์‚ฝ์ž…๋˜๋Š” ์œ„์น˜๋ฅผ ์ œ์–ด ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์š”์†Œ๋ฅผ ์ธ๋ฑ์Šค๋กœ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์ธ๋ฑ์Šค๋กœ ์š”์†Œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋™์ผํ•œ ์š”์†Œ(๊ฐ์ฒด)๋ฅผ ์ค‘๋ณตํ•ด์„œ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
  • List ์ปฌ๋ ‰์…˜์€ ๊ฐ์ฒด ์ž์ฒด๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ฐ์ฒด์˜ ๋ฒˆ์ง€๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.
  • null๋„ ์ €์žฅ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, null์„ ์ €์žฅํ•œ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ์ธ๋ฑ์Šค๋Š” ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜์ง€ ์•Š๋Š”๋‹ค. \
  • ArrayList, LinkedList, Vector, Stack

 

ArrayList<E> ํด๋ž˜์Šค

  • List ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค
  • ํฌ๊ธฐ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•œ ๋ฐฐ์—ด์„ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋กœ ์ดˆ๊ธฐ ์šฉ๋Ÿ‰์€ 10.
  • ๋ชฉ๋ก์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฐ์—ด(array)์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ œ๊ณต
  • ArrayList์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ์ €์žฅ ์šฉ๋Ÿ‰์ด ๋ถ€์กฑ๋˜๋ฉด ์ž๋™์œผ๋กœ ์šฉ๋Ÿ‰์ด ๋Š˜์–ด๋‚œ๋‹ค.
  • ์ž๋ฃŒ ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œ ์‹œ ์ž„์‹œ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ์ž๋ฃŒ๋ฅผ ๋ณต์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•œ๋‹ค.
  • ๋Œ€๋Ÿ‰์˜ ์ž๋ฃŒ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œ ํ•˜๋Š” ๊ฒฝ์šฐ ๋‚ด๋ถ€์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋Ÿ‰์ด ๋Š˜์–ด๋‚˜๋ฉด์„œ ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
  • ๊ฐ ๋ฐ์ดํ„ฐ๋Š” ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ํ•œ๋ฒˆ์— ์ฐธ์กฐ๊ฐ€ ๊ฐ€๋Šฅํ•ด ๋ฐ์ดํ„ฐ์˜ ๊ฒ€์ƒ‰์—๋Š” ์œ ๋ฆฌํ•˜๋‹ค.
  • ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ ๋™๊ธฐํ™” ๋˜์ง€ ์•Š๋Š”๋‹ค.
  • ๋™๊ธฐํ™” ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ  Vector ํด๋ž˜์Šค์™€ ์œ ์‚ฌํ•˜๋‹ค.
  1. ๋ฐฐ์—ด
    ๋ฐฐ์—ด์€ ํ•œ๋ฒˆ ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋˜๋ฉด ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.
    ๋ฐฐ์—ด์˜ ์ฒ˜์Œ์ด๋‚˜ ์ค‘๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ, ๊ธฐ์กด ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฎ์–ด์“ฐ๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋Š” ์‚ฌ๋ผ์ง„๋‹ค.
  2. ArrayList 
    ๊ฐ€๋ณ€ ๊ธธ์ด์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๋ฐ์ดํ„ฐ์˜ ๊ฒ€์ƒ‰์— ์œ ๋ฆฌํ•˜๋ฉฐ, ์ถ”๊ฐ€ ๋˜๋Š” ์‚ญ์ œ์—๋Š” ์„ฑ๋Šฅ์„ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.
    ๋ฆฌ์ŠคํŠธ์˜ ์ฒ˜์Œ, ๋, ์ค‘๊ฐ„์— ์ž๋ฃŒ๋ฅผ ์ถ”๊ฐ€ ๋˜๋Š” ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. 

 

 

package ch11.unit02;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

public class Ex01_ArrayList {

	public static void main(String[] args) {

		List<String> list = new ArrayList<String>();
		// ArrayList<String> list = new ArrayList<String>();

		String s;
		list.add("์„œ์šธ"); // ๋งˆ์ง€๋ง‰์— ์š”์†Œ ์ถ”๊ฐ€
		list.add("๋ถ€์‚ฐ");
		list.add("์ธ์ฒœ");
		list.add("๊ด‘์ฃผ");
		list.add("์„œ์šธ"); // ์ค‘๋ณต ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ
		list.add("๋Œ€์ „");
		System.out.println(list);

		// 2.์ธ๋ฑ์Šค์— ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€
		list.add(2, "๋Œ€๊ตฌ");
		System.out.println(list);

		// ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜
		System.out.println("๊ฐœ์ˆ˜:" + list.size());

		// ์ฒ˜์Œ
		System.out.println("์ฒ˜์Œ:" + list.get(0));

		// ๋‘๋ฒˆ์จฐ
		System.out.println("์ฒ˜์Œ:" + list.get(1));

		// ๋งˆ์ง€๋ง‰ ๋ฐ์ดํ„ฐ
		System.out.println("์ฒ˜์Œ:" + list.get(list.size() - 1));

		// ์ฒ˜์Œ์— ํ•œ๊ตญ ์ถ”๊ฐ€
		list.add(0, "ํ•œ๊ตญ");
		System.out.println(list);

		// ์ฒ˜์Œ ํ•œ๊ตญ์„ ๋Œ€ํ•œ๋ฏผ๊ตญ์œผ๋กœ ์ˆ˜์ •
		list.set(0, "๋Œ€ํ•œ๋ฏผ๊ตญ");
		System.out.println(list);

		int idx;
		// ์ธ์ฒœ์˜ ์ธ๋ฑ์Šค?
		idx = list.indexOf("์ธ์ฒœ");
		System.out.println("์ธ์ฒœ ์ธ๋ฑ์Šค:" + idx);

		idx = list.indexOf("๊ฒฝ๊ธฐ");
		System.out.println("๊ฒฝ๊ธฐ ์ธ๋ฑ์Šค:" + idx);

		idx = list.indexOf("์„œ์šธ");
		System.out.println("์„œ์šธ ์ธ๋ฑ์Šค(์ฒ˜์Œ๋ถ€ํ„ฐ):" + idx);

		idx = list.lastIndexOf("์„œ์šธ");
		System.out.println("์„œ์šธ ์ธ๋ฑ์Šค(๋’ค๋ถ€ํ„ฐ๊ฒ€์ƒ‰):" + idx);

		// ๋ถ€์‚ฐ ์กด์žฌ ์œ ๋ฌด
		System.out.println("๋ถ€์‚ฐ ์žˆ๋‚˜?" + list.contains("๋ถ€์‚ฐ"));

		// ๋Œ€ํ•œ๋ฏผ๊ตญ์‚ญ์ œ
		// list.remove("๋Œ€ํ•œ๋ฏผ๊ตญ");
		list.remove(0);
		System.out.println(list);

		System.out.println("\n์ „์ฒด์ถœ๋ ฅ-1");
		for (int i = 0; i < list.size(); i++) {
			System.out.print(list.get(i) + " ");
		}
		System.out.println();

		System.out.println("\n์ „์ฒด์ถœ๋ ฅ-2");
		for (String str : list) {
			System.out.print(str + " ");
		}
		System.out.println();

		System.out.println("\n์ „์ฒด์ถœ๋ ฅ-3");
		Iterator<String> it = list.iterator();
		while (it.hasNext()) {
			s = it.next();
			System.out.print(s + "  ");
		}

		System.out.println();

		System.out.println("\n์—ญ์ˆœ์ถœ๋ ฅ =1");
		for (int i = list.size() - 1; i >= 0; i--) {
			System.out.print(list.get(i) + "  ");

		}
		System.out.println();

		System.out.println("\n์—ญ์ˆœ์ถœ๋ ฅ -2");
		// ListIterator:์ˆœ๋ฐฉํ–ฅ๊ณผ ์—ญ๋ฐฉํ–ฅ ๊ฐ€๋Šฅ
		// ์ฒ˜์Œ๋ถ€ํ„ฐ
		// ListIterator <String> it2 = list.listIterator();
		ListIterator<String> it2 = list.listIterator(list.size());
		while (it2.hasPrevious()) {
			s = it2.previous();
			System.out.print(s + " ");
		}
		System.out.println();

		
		//๋ชจ๋“  ์š”์†Œ ์‚ญ์ œ
		list.clear();
		System.out.println("์‚ญ์ œํ›„ ๊ฐœ์ˆ˜:"+list.size());
	}

}

 

 

package ch11.unit02;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Ex02 {

	public static void main(String[] args) {
		
		List<String> list1 = new ArrayList<String>();
		list1.add("์„œ์šธ");
		list1.add("๋ถ€์‚ฐ");
		list1.add("๋Œ€๊ตฌ");

		List<String> list2 = new ArrayList<String>();
		list2.add("๊ฐ•์›");
		list2.add("๊ฒฝ๊ธฐ");
		list2.add("๊ฒฝ์ƒ");
		
		//list2์— list1์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€
		list2.addAll(list1);
		System.out.println(list2);

		//List<String> → String[]
		String[] ss = list2.toArray(new String[list2.size()]);		
		System.out.println("\n ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐฐ์—ด๋กœ...");
		for(String s:ss) {
			System.out.print(s+" ");
		}
		System.out.println();
		
		//String[] => List<String>
		List<String> list3 = Arrays.asList(ss);
			// ํƒ€์ž… : ArrayList๊ฐ€ ์•„๋‹ˆ๋ผ Array$ArrayList
		System.out.println("\n ๋ฐฐ์—ด์„ ๋ฆฌ์ŠคํŠธ๋กœ ๋ณต์‚ฌํ›„ :"+ list3);
		
		//subList(a,b) : a ์ธ๋ฑ์Šค์—์„œ b-1 ์ธ๋ฑ์Šค๊นŒ์ง€์˜ ๋ถ€๋ถ„ list
		List<String>list4 = list2.subList(1, 4);
		System.out.println(list4); // [๊ฒฝ๊ธฐ,๊ฒฝ์ƒ,์„œ์šธ]
		
		//์ „์ฒด ์‚ญ์ œ
		list1.clear();
		System.out.println("์ „์ฒด ์‚ญ์ œํ›„ :"+list1.size());
	
		
		//list2์—์„œ "๊ฒฝ์ƒ,์„œ์šธ,๋ถ€์‚ฐ" ์‚ญ์ œ
		list2.subList(2, 5).clear();
			// list3์€ ArrysArrayList๋กœ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜ 
		System.out.println("๋ถ€๋ถ„ ์‚ญ์ œ :"+list2);
	
	}

}

 

 

 

package ch11.unit02;
/*
 - ArrayList
 	: List ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„ ํด๋ž˜์Šค
 	: ๊ฒ€์ƒ‰ํžˆ ์†๋„ ๋น ๋ฆ„
 	: ๋™๊ธฐํ™” ๋˜์ง€ ์•Š์Œ(๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ์—์„œ ์•ˆ์ „ํ•˜์ง€ ์•Š์Œ)
 
 - LinkedList
 	: List ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„ ํด๋ž˜์Šค
 	: ๊ฒ€์ƒ‰ํžˆ ์†๋„ ๋А๋ฆผ
 	: ์•ž์ด๋‚˜ ๋’ค์—์„œ ์ถ”๊ฐ€ ๋˜๋Š” ์‚ญ์ œ๊ฐ€ ๋นˆ๋ฒˆํ•œ ๊ฒฝ์šฐ ๋น ๋ฆ„
 	: ์ค‘๊ฐ„์— ์‚ฝ์ž…, ์‚ญ์ œ์‹œ์—๋Š” ์†๋„๊ฐ€ ํ˜„์ €ํžˆ ๋–จ์–ด์ง 
 	: ๋™๊ธฐํ™” ๋˜์ง€ ์•Š์Œ(๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ์—์„œ ์•ˆ์ „ํ•˜์ง€ ์•Š์Œ)
 */

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class Ex03 {

	public static void main(String[] args) {
		List<String> list1 = new ArrayList<String>();
		list1.add("์„œ์šธ");
		list1.add("๋ถ€์‚ฐ");
		list1.add("๋Œ€๊ตฌ");
		System.out.println("ArrayList :" + list1 );
		System.out.println();
		
		List<String> list2 = new LinkedList<String>();
		list2.add("์„œ์šธ");
		list2.add("๋ถ€์‚ฐ");
		list2.add("๋Œ€๊ตฌ");
		System.out.println("ArrayList :" + list2);
		System.out.println();
	}

}

 

 

 

package ch11.unit02;

import java.util.ArrayList;
import java.util.List;

public class Ex05 {

	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		list.add("A");
		list.add("B");
		list.add("B");
		list.add("A");
		list.add("C");
		list.add("A");
		list.add("D");
		list.add("C");
		list.add("E");
		
		//์ค‘๋ณต ๋ฐฐ์ œ
		for(int i = 0; i < list.size();i++) {
			if(list.indexOf(list.get(i))==i) {
				System.out.print(list.get(i)+" ");
			}
		}
		System.out.println();
	}
	

}

 

 

Vector<E>

  • List ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค
  • ๊ฐ์ฒด์˜ ๊ฐ€๋ณ€๊ธธ์ด ๋ฐฐ์—ด์„ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋กœ ์ดˆ๊ธฐ ์šฉ๋Ÿ‰์€ 10์ด๋‹ค.
  • ๋ฐฐ์—ด๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ์š”์†Œ๋ฅผ ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Vector๋ฅผ ๋งŒ๋“  ํ›„ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋งŒํผ์˜ Vector์˜ ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆฌ๊ฑฐ๋‚˜ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ ๋™๊ธฐํ™” ๋œ๋‹ค.
  • ๋™๊ธฐํ™”๊ฐ€ ํ•„์š” ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ArrayListํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.

 

package ch11.unit02;

import java.util.Vector;

public class Ex06_Vector {

	public static void main(String[] args) {
		// ArrayList : ๋™๊ธฐํ™” ์ง€์› ์•ˆํ•จ
		// Vector : ๋™๊ธฐํ™” ์ง€์› (๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ์—์„œ ์•ˆ์ „)

		Vector<String> list = new Vector<String>();
		System.out.println("์ดˆ๊ธฐ์šฉ๋Ÿ‰ : " + list.capacity());

		list.add("a1");
		list.add("a2");
		list.add("a3");
		list.add("a4");
		list.add("a5");
		list.add("a6");
		list.add("a7");
		list.add("a8");
		list.add("a9");
		list.add("a10");
		list.add("a11");
		list.add("a12");
		list.add("a13");
		list.add("a14");
		list.add("a15");

		System.out.println("๊ฐœ์ˆ˜:" + list.size()); // ๊ฐœ์ˆ˜:15
		System.out.println("์šฉ๋Ÿ‰:" + list.capacity()); // ์šฉ๋Ÿ‰:20

		list.add(0, "korea");
		System.out.println(list);

		System.out.println("์ฒ˜์Œ:" + list.get(0));
		System.out.println("์ฒ˜์Œ:" + list.firstElement());

		System.out.println("๋งˆ์ง€๋ง‰:" + list.get(list.size() - 1));
		System.out.println("๋งˆ์ง€๋ง‰:" + list.lastElement());

		list.set(0, "๋Œ€ํ•œ๋ฏผ๊ตญ");
		System.out.println(list);

		System.out.println("์ „์ฒด...");
		for (String s : list) {
			System.out.print(s + " ");
		}
		System.out.println();

		int idx = list.indexOf("a7");
		System.out.println("a7 ์ธ๋ฑ์Šค:" + idx);

		list.remove(3);
		list.remove("a7");
		System.out.println(list);

		list.clear();
		System.out.println("๊ฐœ์ˆ˜:" + list.size()); 
		System.out.println("์šฉ๋Ÿ‰ :" + list.capacity());
		
		list.trimToSize(); //์šฉ๋Ÿ‰์„ ๊ฐœ์ˆ˜๋กœ
		System.out.println("์šฉ๋Ÿ‰:"+list.capacity());

	}

}

 

 

 

LinkedList<E> ํด๋ž˜์Šค

  • List ์ธํ„ฐํŽ˜์ด์Šค ๋ฐ Deque ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค
  • ๋‚ด๋ถ€์ ์œผ๋กœ Linked List ์ž๋ฃŒ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฐ ๋…ธ๋“œ๊ฐ€ ์ด์ „ ๋…ธ๋“œ์™€ ๋‹ค์Œ ๋…ธ๋“œ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„.
  • ๋ฐ์ดํ„ฐ์˜ ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œ ์‹œ ArrayList ์ฒ˜๋Ÿผ ๋ถˆํ•„์š”ํ•œ ๋ณต์‚ฌ๊ฐ€ ์ผ์–ด๋‚˜์ง€ ์•Š์•„ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.
  • ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰์€ ArrayList์— ๋น„ํ•ด ๋А๋ฆฌ๋‹ค.
  • ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ ๋™๊ธฐํ™” ๋˜์ง€ ์•Š๋Š”๋‹ค.

 

 

Stack<E> ํด๋ž˜์Šค

  • Vector<E> ํด๋ž˜์Šค๋ฅผ ์ƒ์† ๋ฐ›์€ ํด๋ž˜์Šค
  • LIFO(Last - in -First - OuT) ๊ตฌ์กฐ๋ฅผ ๊ฐ–๋Š” ์Šคํƒ์„ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค
  • ์ผ๋ฐ˜์ ์ธ push์™€ pop ์ž‘์—… ๋ฐ ์Šคํƒ์˜ ๊ฐ€์žฅ ์œ„ ๊ฐ์ฒด๋ฅผ ํ™•์ธ ํ•˜๊ฑฐ๋‚˜ ์Šคํƒ์ด ๋น„์–ด ์žˆ๋Š”์ง€ ๋“ฑ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

package ch11.unit02;

import java.util.Stack;

public class Ex07_Stack {

	public static void main(String[] args) {
		/*
		 - Stack
		 : LIFO ๊ตฌ์กฐ
		 : Vector์„ ์ƒ์† ๋ฐ›์Œ
		 : ์ฃผ์š” ๋ฉ”์†Œ๋“œ
		 	push() : ์Šคํƒ์— ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€
		 	pop () : top ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ ํ›„ ์‚ญ์ œ 
		 	peek () : top ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ ํ›„ ์‚ญ์ œํ•˜์ง€ ์•Š์Œ 
		 * 
		 */
		
		Stack<String> st = new Stack<String>();
		st.push("a1");
		st.push("a2");
		st.push("a3");
		
		while(! st.isEmpty()) {
			String s = st.pop();
			System.out.print(s+" "); // a3 a2 a1 

		}
		System.out.println();
	
	}

}