[JAVA] Day 15 - Interface [ List / Map ...]

sueยท2023๋…„ 12์›” 4์ผ

๐Ÿ“’๊ตญ๋น„ํ•™์› [JAVA]

๋ชฉ๋ก ๋ณด๊ธฐ
12/20
post-thumbnail

Inner class (= Nested class) :

๐Ÿ”Ž [Eclipse] - [package] - [class] ์ƒ์„ฑ


๐Ÿ“Œ Note Code


  • ListIterator vs iterator ์ฐจ์ด ?
    : โ‘  ๋‘˜ ๋‹ค Interface / Java์—์„œ Collection ์ˆœํšŒ (๋ฐ˜๋ณต์ž)

  • Iterator : ๋‹จ์ผ๋ฐฉํ–ฅ (์•ž์œผ๋กœ = ๋‹ค์Œ์š”์†Œ๋งŒ only) / ์ด์ „์š”์†Œ๋กœ ๋Œ์•„๊ฐ€๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Œ / List, Set , Map ์ธํ„ฐํŽ˜์ด์Šค์— ๋˜‘๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ / remove ์‚ญ์ œ๋งŒ ๊ฐ€๋Šฅ

- iterator.remove(); // ํ˜„์žฌ ์ˆœํšŒ ์ค‘์ธ ์š”์†Œ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
- myList.add("Four"); // ์—๋Ÿฌ (์‚ญ์ œ๋งŒ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ)
- iterator.set("NewValue"); // ์—๋Ÿฌ

  • ListIterator : ์–‘๋ฐฉํ–ฅ (๋‹ค์Œ์š”์†Œ , ์ด์ „์š”์†Œ ์ด๋™ ๊ฐ€๋Šฅ) / lists ์ „์šฉ(List-specific) iterator - Set , Map ์ ์šฉ ๋ถˆ๊ฐ€ / ์ˆœํšŒ ์ค‘์ธ ์œ„์น˜์— ์ƒˆ๋กœ์šด ์š”์†Œ ์‚ฝ์ž…๊ฐ€๋Šฅ / ํ˜„์žฌ ์œ„์น˜ ์š”์†Œ๋ฅผ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ์Œ



1. List(I) - Iterator๋ฅผ ์‚ฌ์šฉํ•ด์„œ "์„œ์šธ","๋ถ€์‚ฐ","๋Œ€๊ตฌ" ์ถœ๋ ฅํ•˜์—ฌ๋ผ

Test1

๐Ÿ’ป ์ž…๋ ฅ


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

//ArrayListํ™œ์šฉ
public class Test1 {

	public static void main(String[] args) {

		ArrayList<String> lists = new ArrayList<String>();
		
		
		lists.add("์„œ์šธ");
		lists.add("๋ถ€์‚ฐ");
		lists.add("๋Œ€๊ตฌ");
		
		ListIterator<String> it = lists.listIterator();
		
		while (it.hasNext()) {
			System.out.print(it.next() + " ");
		}
		
		System.out.println("\n--------------"); 

		//ListIterator๋งŒ ๊ฐ€๋Šฅ (์–‘๋ฐฉํ–ฅ)
		while (it.hasPrevious()) { //eof๊นŒ์ง€ ๋ฐ์ดํ„ฐ ๋‚ด๋ ค๊ฐ„๊ฑธ ์—ญ์œผ๋กœ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ์Œ
			System.out.print(it.previous() + " ");
		}
		System.out.println();
		
		List<String> lists1 = new ArrayList<String>();
		
		lists1.addAll(lists); //์„œ์šธ๋ถ€์‚ฐ๋Œ€๊ตฌ
		lists1.add("์ธ์ฒœ");//์„œ์šธ๋ถ€์‚ฐ๋Œ€๊ตฌ์ธ์ฒœ
		
        //indexOf์™€ ๊ฐ™์€ ๋ฉ”์„œ๋“œ๋กœ ์œ„์น˜ ํ™•์ธํ•˜๋Š” ์ž‘์—…์€ ์ผ๋ฐ˜์ ์œผ๋กœ ListIterator๊ฐ€ ๋” ํŽธ๋ฆฌํ•จ
		//collection์•ˆ์— collection๋„ฃ์„ ์ˆ˜ ์žˆ์Œ
		int n = lists1.indexOf("๋ถ€์‚ฐ"); //๋ถ€์‚ฐ์˜ index =1
		lists1.add(n+1,"๊ด‘์ฃผ");//n+1=2, ๊ทธ์ž๋ฆฌ์— ๊ด‘์ฃผ ๋„ฃ๊ณ  ๊ธฐ์กด์• ๋“ค ๋’ค๋กœ ๋ฐ€๊ธฐ
		
		for(String s : lists1) {
			System.out.print(s+" ");
		}
		System.out.println();

		Iterator<String> it1 = lists1.iterator();
		while (it.hasNext()) {
			String str = it.next();

			if (str.startsWith("๋ถ€์‚ฐ")) {
				System.out.print(str + " ");
			}
		}

	}

}


๐Ÿ’ก **์ถœ๋ ฅ**
์„œ์šธ ๋ถ€์‚ฐ ๋Œ€๊ตฌ 
--------------
๋Œ€๊ตฌ ๋ถ€์‚ฐ ์„œ์šธ 
์„œ์šธ ๋ถ€์‚ฐ ๊ด‘์ฃผ ๋Œ€๊ตฌ ์ธ์ฒœ 
๋ถ€์‚ฐ 



๐Ÿ“Œ Note Code


  • Map (Interface)
    โ‘  Map<key,value> - ์ค‘๋ณต๊ฐ’ ๊ฐ–์ง€ ์•Š์Œ (๋ฎ์–ด์“ฐ๋ฏ€๋กœ)
    โ‘ก Hashtable(C) : Vector์™€ ๋™์ผ - ๋™๊ธฐํ™”(๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„  ์•ˆ์ „, but ๋‹จ์ผ์Šค๋ ˆ๋“œ์—์„œ๋Š” HashMap๋ณด๋‹ค๋Š” ์„ฑ๋Šฅ ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Œ / ์ค‘๋ณต๊ฐ’ ํ—ˆ์šฉ x / null ํ—ˆ์šฉ x
    โ‘ข HashMap(C) : ArrayList์™€ ๋™์ผ - ๋™๊ธฐํ™” x / Hashtable๋ณด๋‹ค ๋” ๋‚˜์€ ์„ฑ๋Šฅ + ๋” ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌ ( => ์š”์ฆ˜์€ ConcurrentHashMap : ๋™์‹œ์„ฑ ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค - ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ๋„ ์•ˆ์ „ํ•˜๊ฒŒ) / null ํ—ˆ์šฉ o
    โ‘ฃ TreeMap(C) : ์ •๋ ฌํ•ด์„œ ์ถœ๋ ฅ
    โ‘ค Map = x iterator๊ฐ€ ์—†์œผ๋ฏ€๋กœ x โ†’ set์˜ Iterator๋ฅผ ๋นŒ๋ ค์”€ (keySet().iterator())
    โ‘ฅ put(key,value) : ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ - lists.add์™€ ๋น„์Šท / key์™€ value๋Š” ๋”ฐ๋กœ ์ €์žฅ๋จ
    โ‘ฆ get(key) : ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ด


2. Map(I) - Hashtable(C) / HashMap(C) / TreeMap(C)์„ ํ™œ์šฉํ•ด ๋ฐฐ์šฐ ์ด๋ฆ„(value๊ฐ’)๊ณผ ๋ฒˆํ˜ธ(key๊ฐ’)์„ ์ถœ๋ ฅํ•˜์—ฌ๋ผ

Test2

๐Ÿ’ป ์ž…๋ ฅ


import java.util.Hashtable;
import java.util.Iterator;

public class Test2 {

	public static String name[] = { "๋ฐฐ์ˆ˜์ง€", "์ด์ด๋‹ด", "์œ ์ธ๋‚˜", "๋ฐ•์‹ ํ˜œ", "๊ณ ๋ฌธ์˜" }; // value
	public static String tel[] = { "111-111", "222-222", "333-333", "111-111", "555-555" }; // key : ์œ ์ผํ•œ ๊ฐ’

	public static void main(String[] args) {

		// Map์œผ๋กœ ๊ณ ์ณ๋„๋จ -> Map<String, String> h = new Hashtable<String, String>();
		Hashtable<String, String> h = new Hashtable<String, String>();

		for (int i = 0; i < name.length; i++) {

			h.put(tel[i], name[i]);

		}
		System.out.println(h); //[Map]์—์„œ ๊ฐ€์žฅ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ด๊ฒŒ ์ถœ๋ ฅํ•ด์ค€ ๊ฒฐ๊ณผ๋ฌผ
		
		String str; //value๊ฐ’  //String์€ ์ง€์—ญ๋ณ€์ˆ˜์ž„ - string์€ null์ด๋ž‘ ๋น„๊ตํ• ๋•Œ๋Š”  ==๋กœ ๋น„๊ต
		
		str = h.get("111-111");//key๋ฅผ ์ฃผ๋ฉด value๋ฅผ ์คŒ
	
		if(str==null) { 
			System.out.println("์ž๋ฃŒ์—†์Œ");
		}else {
			System.out.println(str);
		}
		
		if(h.containsKey("222-222")) {
			System.out.println("222-222ํ‚ค๊ฐ€ ์žˆ๋‹ค");
		}
		
		if(h.contains("์ด์ด๋‹ด")) { //์‚ฌ์šฉํ•˜๋Š”๊ฑฐ ๋“œ๋ฌผ๋‹ค
			System.out.println("์ด๋‹ด์ด ์žˆ์–ด์š”!");
		}
		
		
		h.remove("222-222"); //์‚ญ์ œ
		
		if (h.containsKey("222-222")) { //์žˆ๋‹ค์—†๋‹ค๋ฅผ ์•Œ๋ ค์ฃผ๋Š” key
			System.out.println("222-222ํ‚ค๊ฐ€ ์žˆ๋‹ค");
		} else {
			System.out.println("222-222ํ‚ค๊ฐ€ ์—†๋‹ค");
		}
		
		//map,set (๋ชจ๋“  collection) ๋ฐ์ดํ„ฐ ํƒ€์ž… = object
        //์˜ค๋ฆฌ์ง€๋„ <> ์ด ์ž๋ฆฌ ์ฃผ์ธ = set / set์˜๋ฐ์ดํ„ฐํƒ€์ž… String
		Iterator<String> it = h.keySet().iterator();//<iterator ์‹œํ–‰์‹œ - key์˜ ํƒ€์ž…๊ฐ’์„ ์จ์ฃผ๋ฉด๋จ>
		 
		while(it.hasNext()) {
			
		String key = it.next(); // ๋ฐ์ดํ„ฐ๊ฐ€ key์™€ vaule๋กœ ๋‚˜๋ˆ„์–ด์ ธ์žˆ์–ด์„œ key๋งŒ ๋จผ์ € ๊บผ๋ƒ„  = key์˜ ์ž๋ฃŒํ˜• : string 
		String value = h.get(key); //key๋ฅผ ์ฃผ๋ฉด value๊ฐ’์•Œ ์ˆ˜ ์žˆ์Œ
	
		System.out.println(key+" : "+value);
	
    	}
	}
}


๐Ÿ’ก **์ถœ๋ ฅ**
{333-333=์œ ์ธ๋‚˜, 111-111=๋ฐ•์‹ ํ˜œ, 222-222=์ด์ด๋‹ด, 555-555=๊ณ ๋ฌธ์˜}
๋ฐ•์‹ ํ˜œ
222-222ํ‚ค๊ฐ€ ์žˆ๋‹ค
์ด๋‹ด์ด ์žˆ์–ด์š”!
222-222ํ‚ค๊ฐ€ ์—†๋‹ค
333-333 : ์œ ์ธ๋‚˜
111-111 : ๋ฐ•์‹ ํ˜œ
555-555 : ๊ณ ๋ฌธ์˜


0๊ฐœ์˜ ๋Œ“๊ธ€