Java์˜ ๊ฝƒ Collection๐ŸŒผ

alert("april");ยท2023๋…„ 7์›” 14์ผ
0

java

๋ชฉ๋ก ๋ณด๊ธฐ
2/9

์ž๋ฃŒ๊ตฌ์กฐ

์˜๋ฏธ ์—†๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ์ •๋ณด๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์˜ ์ง‘ํ•ฉ,
์ˆ˜์ง‘ํ•œ ์ž๋ฃŒ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•

์•Œ๊ณ ๋ฆฌ์ฆ˜

์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ๋˜์—ˆ์„ ๋•Œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์ ˆ์ฐจ ํ˜น์€ ์ˆœ์„œ

์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ

๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œ์ค€ํ™”๋œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค๋“ค์˜ ์ง‘ํ•ฉ


์ถœ์ฒ˜: https://techvidvan.com/tutorials/java-collection-framework/

1. List extends Collection

List ๊ตฌํ˜„ ํด๋ž˜์Šค

Vector : ์šฉ๋Ÿ‰ ๊ด€๋ฆฌ, ๋ณด์•ˆ์„ฑ ๊ฐ•ํ™”(์œ ์‹ค๋˜๋Š” ๋ฐ์ดํ„ฐ ์—†์ด ๋‚ด๊ฐ€ ์ฒ˜์Œ ์ €์žฅ ํ•ด๋†“์€๋Œ€๋กœ ์˜จ์ „ํžˆ ์žˆ๋Š” ๊ฒƒ), ์ฒ˜๋ฆฌ๋Ÿ‰ ๊ฐ์†Œ
LinkedList : FILO(First In Last Out)์œผ๋กœ ์ธํ•ด ๋„ฃ์„ ๋•Œ๋Š” ๋นจ๋ผ๋„ ๋บ„ ๋•Œ์—๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ๋Š๋ฆฌ๋‹ค.
ArrayList : ์ธ๋ฑ์Šค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.
	์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค ์ค‘ ์‹ค๋ฌด์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ํด๋ž˜์Šค์ด๋‹ค.
	๋ฐฐ์—ด์˜ ํŠน์ง•์ธ ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•œ๋‹ค.
    
๋ฐฐ์—ด๊ณผ ArrayList์˜ ์ฐจ์ด
	๋ฐฐ์—ด์€ ๊ธธ์ด์— ์ œํ•œ์„ ๋‘์–ด์•ผ ํ•  ๋•Œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๊ณ ,
	ArrayList๋Š” ๋ช‡ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์˜ฌ ์ง€ ์•Œ ์ˆ˜ ์—†์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

ArrayListTest.java

package collectionTest;

import java.util.ArrayList;
import java.util.Collections;

public class ArrayListTest {

	public static void main(String[] args) {
		
//		<?> : ์ œ๋„ค๋ฆญ
//		๊ฐ์ฒดํ™” ์‹œ ํƒ€์ž…์„ ์ง€์ •ํ•˜๋Š” ๊ธฐ๋ฒ•
//		์„ค๊ณ„ํ•  ๋•Œ์—๋Š” ํƒ€์ž…์„ ์ง€์ •ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ž„์‹œ๋กœ ํƒ€์ž…์„ ์„ ์–ธํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
//		๋”ฐ๋กœ ๋‹ค์šด ์บ์ŠคํŒ…์„ ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ์ œ๋„ค๋ฆญ์— Object๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
//		์ €์žฅํ•  ํƒ€์ž…์— ์ œํ•œ์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.
		
//		๊บพ์ƒˆ๊นŒ์ง€๊ฐ€ ํ•˜๋‚˜์˜ ํƒ€์ž…์ด๋‹ค.
		ArrayList<Integer> datas = new ArrayList();

//		์ถ”๊ฐ€
		datas.add(100);
		datas.add(300);
		datas.add(200);
		datas.add(400);
		datas.add(500);
		datas.add(600);
		datas.add(800);
		datas.add(700);
		
		System.out.println(datas.toString()); // [100, 300] toString๊ฐ’
		
//		System.out.println(datas[0]); ๋ฐฐ์—ด์˜ ์ธ๋ฑ์‹ฑ ๋ฐฉ์‹ 
		
//		๋ฐ˜๋ณต๋ฌธ ๋Œ๋ฆฌ๊ธฐ
//		์ธ๋ฑ์‹ฑ
//		System.out.println(datas.size()); // ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฉ”์†Œ๋“œ
//		for (int i = 0; i < datas.size(); i++) { // length๊ฐ€ ์•„๋‹ˆ๋ผ size!
//			System.out.println(datas.get(i));
//		}
		
		Collections.sort(datas);
		System.out.println(datas); 
		
		Collections.reverse(datas);
		System.out.println(datas);
		
		Collections.shuffle(datas);
		System.out.println(datas);
		
//		์ถ”๊ฐ€(์‚ฝ์ž…) ํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ์ž˜ ์•ˆ์“ฐ์ธ๋‹ค
//		datas.add(0, 1000);
//		System.out.println(datas);
//		
//		400 ๋’ค์— 4000์‚ฝ์ž…
		System.out.println(datas.contains(400));
		System.out.println(datas.indexOf(400));
		if(datas.contains(400)) {
			datas.add(datas.indexOf(400)+1, 4000);
		}
		
		System.out.println(datas);
		
//		์ˆ˜์ •ํ•ด๋ณด์ž~!
//		4000 ์„ 40์œผ๋กœ ์ˆ˜์ •
		
		System.out.println(datas.set(datas.indexOf(4000),40)+"์„ 40์œผ๋กœ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.");
		System.out.println(datas);
		
//		์‚ญ์ œ
		System.out.println(datas.remove(0) + "์„ ์‚ญ์ œ ํ–ˆ์–ด์š”.");
		System.out.println(datas);
		
//		๊ฐ’์„ ํ™œ์šฉํ•˜์—ฌ ์‚ญ์ œํ•˜๊ธฐ
		datas.remove(Integer.valueOf(40)); // 40์ด int type์ด๋ผ boxing์„ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.
		System.out.println(datas);
		System.out.println(datas.remove((Integer)(40))); // ์ด๋ ‡๊ฒŒํ•ด๋„ ๋˜‘๊ฐ™์ด ๋‚˜์˜จ๋‹ค.
		
	}

}

ForEachTask.java

package collectionTest;

import java.util.Iterator;

public class ForEachTask {

	public static void main(String[] args) {

//		์‹ค์Šต
//		๊ฐ ํ•™์ƒ์˜ ์ด์ ๊ณผ ํ‰๊ท ์„ ์ถœ๋ ฅํ•ด๋ณด์„ธ์š”!
		int[][] scores = {{100, 80, 65},{40, 77, 30}};
		
//		My Version...		
//		for (int[0] total : scores) {
//			for(int scores : total) {
//				int total = int
//				System.out.println(number + " ");
//			}
//		}
//		์„ ์–ธ ๋ฐ ์ดˆ๊ธฐํ™”
		int total = 0;
		double avg = 0.0;
		
		for (int[] stu : scores) {
			total = 0; // ์ดˆ๊ธฐํ™”๋ฅผ ํ•œ๋ฒˆ ๋” ํ•ด์ค˜์•ผํ•œ๋‹ค. ๊ทธ๋ž˜์•ผ ๋‘๋ฒˆ์งธ ํ•™์ƒ๊บผ๋„ ๊ตฌํ•  ์ˆ˜ ์žˆ์Œ.
			for (int score : stu) {
				total += score;
			}
			
			avg = total / (double)stu.length;
			avg = Double.parseDouble(String.format("%.2f", avg));
			
			System.out.println(total);
			System.out.println(avg);
		}
        
	}

}

ForEachTest.java

package collectionTest;

public class ForEachTest {

	public static void main(String[] args) {
		
		int[][] numbers = {{50,70,100},{1,8,6}};
		
//		System.out.println(numbers[0][1]); // 70
		
		for (int i = 0; i < numbers.length; i++) {
			for (int j = 0; j < numbers.length; j++) {
				System.out.print(numbers[i][j] + " ");
			}
		}
		
//		ํ–ฅ์ƒ๋œ for๋ฌธ, for each๋ฌธ, ๋น ๋ฅธ for๋ฌธ(์ •๋ง ๋งŽ์ด ์‚ฌ์šฉ)
		for (int[] is : numbers) {
			for(int number : is) {
				System.out.println(number + " ");
			}
		}
		
	}

}

profile
Slowly but surely

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

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด