์๋ฏธ ์๋ ๋ฐ์ดํฐ๋ฅผ ํ๋์ ์ ๋ณด๋ก ๋ง๋ค์ด์ฃผ๋ ์๊ณ ๋ฆฌ์ฆ๋ค์ ์งํฉ,
์์งํ ์๋ฃ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ
์ด๋ค ๋ฌธ์ ๊ฐ ๋ฐ์๋์์ ๋ ํด๊ฒฐํ ์ ์๋ ์ ์ฐจ ํน์ ์์
๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ ํ์คํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ ํด๋์ค๋ค์ ์งํฉ
์ถ์ฒ: https://techvidvan.com/tutorials/java-collection-framework/
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 + " ");
}
}
}
}