1. ๋ฐฐ์ด vs ์ปฌ๋ ์ ํ๋ ์์ํฌ
(1) ๋ฐฐ์ด
๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ ์ ํด์ ธ ์์. ๋ฐ๋ผ์ ๋ฐฐ์ด์ด ๊ฝ ์ฐผ๋๋ฐ, ๊ฐ์ ๋ ์ถ๊ฐํด์ผ ํ๋ ๊ฒฝ์ฐ, ๋๋ํ ํฌ๊ธฐ๋ก ๋ฐฐ์ด์ ์๋ก ๋ง๋ค์ด์ผํจ. ๊ฑฐ๊ธฐ๋ค๊ฐ ๊ธฐ์กด์ ๊ฐ๋ค ์ ์ฅ + ์๋ก์ด ๊ฐ๋ค ์ ์ฅ ์์ผ์ผํจ.
๋ฐฐ์ด์ ํน์ ์ธ๋ฑ์ค์ ์์ ๊ฐ์ ์ญ์ ํ๋ฉด, ๊ฑฐ๊ธฐ๊ฐ ๊ทธ๋ฅ ๋น์ด์๋ ์ฒด๋ก ์์. (ํฌ๊ธฐ๊ฐ ๋์ ์ผ๋ก ๋ณํํ์ง ์๊ธฐ ๋๋ฌธ)
(2) ์ปฌ๋ ์ ํ๋ ์์ํฌ
์ ์ ์ธ ๋ฐฐ์ด์ ๊ฐ์ ์ ์ฅํ๋ ๊ฒ์ ๋ฐ์ดํฐ๋ค์ ๊ด๋ฆฌํ๋๋ฐ ๋ฒ๊ฑฐ๋ก์ด ์ ์ด ์์.
์ปฌ๋ ์ ํ๋ ์์ํฌ๋ ๋ง์ ์์ ๋ฐ์ดํฐ๋ค์ ๋ ์ฝ๊ณ , ํธ๋ฆฌํ๊ฒ, ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋๋ก JAVA์์ ์ ๊ณตํ๋ ํด๋์ค์ ๋ชจ์์ด๋ค.
์ปฌ๋ ์ ํ๋ ์์ ์๋ฐ์ ๋ฌ๋ฆฌ ํฌ๊ธฐ๊ฐ ๋์ ์ผ๋ก ๋ณํด์, ์ํ๋ ๋งํผ ๋ฐ์ดํฐ ์ถ๊ฐ, ์ญ์ ๊ฐ ๊ฐ๋ฅํ๋ค.
์ํ๋ ๊ฐ ํ์, ํน์ ๊ฐ ๋ณ๊ฒฝ, ์์ ๊ฐ๋ค์ ์ ๋ ฌ๋ ๊ฐ๋ฅํ๋ค.
์ปฌ๋ ์ ํ๋ ์์ํฌ์ ์ข ๋ฅ๋ก๋ List, Set, Map์ด ์๋ค.
List๋ 2๊ฐ์ง ์ข ๋ฅ๋ก ๋๋๋๋ฐ, ArrayList์ LinkedList์ด๋ค. ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ArrayList๋ฅผ ๋จผ์ ์์๋ณด๊ฒ ๋ค.
2. ์ฝ๋ ๋ณด๊ธฐ
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
public class _04_ArrayList {
public static void main(String[] args) {
//ArrayList ์ ์ธ ( <>์์ ์ฐ์ผ ์๋ฃํ ์ ์ด์ฃผ๋ฉด ๋๋ค.)
ArrayList<String> list = new ArrayList<>();
// 1. ๋ฐ์ดํฐ ์ถ๊ฐ: ๋ฆฌ์คํธ_์ด๋ฆ.add(์ถ๊ฐํ ๊ฐ)
list.add("์ ์ฌ์");
list.add("์กฐ์ธํธ");
list.add("๊น์ข
๊ตญ");
list.add("๋ฐ๋ช
์");
list.add("๊ฐํธ๋");
// 2. ๋ฐ์ดํฐ ์กฐํ (์ธ๋ฑ์ค ์ด์ฉ): ๋ฆฌ์คํธ_์ด๋ฆ.get(์กฐํํ ๊ฐ์ index)
System.out.println(list.get(0));
System.out.println(list.get(1));
System.out.println(list.get(2));
System.out.println(list.get(3));
System.out.println(list.get(4));
System.out.println("-------------------------------");
// 3. ๋ฐ์ดํฐ ์ญ์ (๋ฐ๋ช
์ ์จ๊ฐ ์ด์ฌ): ๋ฆฌ์คํธ_์ด๋ฆ.remove(์กฐํํ ๊ฐ์ ์ธ๋ฑ์ค or ๊ฐ ์์ฒด)
System.out.println("์ ์ฒญ ํ์ ์ (์ด์ฌ ์ ): " +list.size()); // 5
list.remove("๋ฐ๋ช
์");
System.out.println("์ ์ฒญ ํ์ ์ (์ด์ฌ ํ): " +list.size()); // 4
System.out.println(list.get(3));
System.out.println("-------------------------------");
System.out.println("๋จ์ ํ์ ์ (์ ์ธ ์ ): " + list.size()); // 4
list.remove(list.size() - 1);
System.out.println("๋จ์ ํ์ ์ (์ ์ธ ํ): " + list.size()); // 3
System.out.println("-------------------------------");
// ์ํ
for (String s: list) {
System.out.println(s);
}
System.out.println("-------------------------------");
// 4. ๋ณ๊ฒฝ (์๊ฐ๊ถ ์๋): ๋ฆฌ์คํธ_์ด๋ฆ.set(index, ๋ฐ๊ฟ๋ฃ์ ๊ฐ)
System.out.println("์๊ฐ๊ถ ์๋ ์ : " + list.get(0));
list.set(0,"์ด์๊ทผ");
System.out.println("์๊ฐ๊ถ ์๋ ํ: " + list.get(0));
System.out.println("-------------------------------");
// 5-1. ์ธ๋ฑ์ค๊ฐ ๋ช ์ธ์ง ํ์ธ: ๋ฆฌ์คํธ_์ด๋ฆ.indexOf(ํ์ธํ๊ณ ์ถ์ ๊ฐ)
System.out.println(list.indexOf("๊น์ข
๊ตญ"));
// 5-2. ๋ฆฌ์คํธ ๋ด์ ๊ฐ์ด ํฌํจ๋์ด ์๋์ง ํ์ธ: ๋ฆฌ์คํธ_์ด๋ฆ.contains(ํ์ธํ ๊ฐ)
if(list.contains("๊น์ข
๊ตญ")) {
System.out.println("์๊ฐ ์ ์ฒญ ์ฑ๊ณต");
}
else {
System.out.println("์๊ฐ ์ ์ฒญ ์คํจ");
}
System.out.println("-------------------------------");
// 6. ์ ์ฒด ์ญ์ : ๋ฆฌ์คํธ_์ด๋ฆ.clear();
list.clear();
if(list.isEmpty()) {
System.out.println("ํ์ ์: " + list.size());
System.out.println("๋ฆฌ์คํธ๊ฐ ๋น์์ต๋๋ค.");
}
System.out.println("-------------------------------");
// ๋ค์ ํ๊ธฐ์ ์๋ก ๊ณต๋ถ ์์
list.add("์ ์ฌ์");
list.add("์กฐ์ธํธ");
list.add("๊น์ข
๊ตญ");
list.add("๋ฐ๋ช
์");
list.add("๊ฐํธ๋");
// 7. ์ ๋ ฌ Collections.sort(๋ฆฌ์คํธ_์ด๋ฆ)
Collections.sort(list);
for (String s :
list) {
System.out.println(s );
}
}
}
3. ์ค์ค๋ก ํด๋ณด๊ธฐ
package WorkOut_Myself;
import java.util.ArrayList;
import java.util.Collections;
public class ArrayList_Myself {
public static void main(String[] args) {
//์ ์ธ
ArrayList<String> King = new ArrayList<>();
// ๋ฐ์ดํฐ ์ถ๊ฐ
King.add("์ด๋ฏผํ");
King.add("์ด์๋ก");
King.add("์ ์ฌ์ฑ");
King.add("์ด์งํ");
King.add("ํ๊ท๋ฒ");
// ๋ฐ์ดํฐ ์กฐํ
System.out.println(King.get(0)+" " + King.get(1)+" " +King.get(2)+" " +King.get(3)+" " +King.get(4));
System.out.println("-------------------------------------");
// ์์ ํ๋๋ง ์ญ์
System.out.println("๋ฐ์ดํฐ ํ๋ ์ญ์ ์ ์ ์ฒด ๊ฐฏ์: " + King.size());
King.remove("์ด์๋ก");
System.out.println("๋ฐ์ดํฐ ํ๋ ์ญ์ ํ ์ ์ฒด ๊ฐฏ์: " +King.size());
System.out.println("ํ๊ท๋ฒ์ index๋? " + King.indexOf("ํ๊ท๋ฒ"));
System.out.println("-------------------------------------");
// ๋ฐ์ดํฐ ์ํ
for (String s :
King) {
System.out.println(s);
}
System.out.println("-------------------------------------");
// ๋ฐ์ดํฐ ๋ณ๊ฒฝ
King.set(3,"๋ฒ๊ทํ");
System.out.println("๋ฆฌ์คํธ index 3๋ฒ์ ๊ฐ: " + King.get(3));
for (int i = 0; i < King.size(); i++) {
System.out.println((i+1)+ "๋ฒ์ ๊ฐ: " + King.get(i));
}
System.out.println("-------------------------------------");
// ํด๋น ์์์ ์ธ๋ฑ์ค๊ฐ ๋ช์ธ์ง ํ์ธ
System.out.println("์ด๋ฏผํ์ ์ธ๋ฑ์ค ๊ฐ์? "+King.indexOf("์ด๋ฏผํ"));
// ๋ฆฌ์คํ ๋ด์ ํด๋น ๊ฐ์ด ์๋์ง ํ์ธ
if(King.contains("์ด์งํ"))
{
System.out.println("์ด์งํ์ด ์์ต๋๋ค.");
} else {
System.out.println("์ด์งํ์ด ์์ต๋๋ค.");
}
System.out.println("-------------------------------------");
// ๋ฆฌ์คํธ ์ ์ฒด ์ญ์
King.clear();
if(King.isEmpty()){
System.out.println("King ์์ด ๋น์์ต๋๋ค.");
} else {
System.out.println("King ์์ ๊ฐ์ด ์์ต๋๋ค.");
}
System.out.println("-------------------------------------");
// ๋ฆฌ์คํธ ์ ๋ ฌ
King.add("์ด๋ฏผํ");
King.add("์ด์๋ก");
King.add("์ ์ฌ์ฑ");
King.add("์ด์งํ");
King.add("ํ๊ท๋ฒ");
King.add("๊นํํ");
King.add("์ฅํ์ฐ");
King.add("JJK");
King.add("Albert");
King.add("๊นํด๊น");
Collections.sort(King);
for (int i = 0; i < King.size(); i++) {
System.out.println((i+1)+ "๋ฒ์ ๊ฐ: " + King.get(i));
}
}
}