[ ์๋ฐ ์ปฌ๋ ์ ํ๋ ์์ํฌ(JCF) ]
- ์๋ฐ ์ปฌ๋ ์ ํ๋ ์์ํฌ(JCF)๋ ๋ค์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋
ํ์คํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ ํด๋์ค์ ์งํฉ(ํ๋ ์์ํฌ)์
- Colletion ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ํด๋์ค์ ์งํฉ์
- ๋ฐฐ์ด์ ์ ์ ์ธ ํ๊ณ๋ฅผ ๊ทน๋ณต ํ๊ธฐ ์ํด์ ์๋ฃ๊ตฌ์กฐ ๋ฐฉ๋ฒ์ ์ ๊ณต
[ ์๋ฐ ์ปฌ๋ ์ ํ๋ ์์ํฌ ์ฃผ์ ์ธํฐํ์ด์ค ]
1. Set ์ธํฐํ์ด์ค
โ ์์๊ฐ ์๊ณ , ์ค๋ณต ๋ถ๊ฐ๋ฅํ ์งํฉ ๊ตฌ์กฐ
โ ๊ตฌํ ํด๋์ค : HashSet, TreeSet
2. List ์ธํฐํ์ด์ค
โ ๊ผฌ๋ฆฌ๋ฅผ ๋ฌผ๊ณ ์ผ๋ ฌ๋ก ๋์ดํ๋ ๊ฒ๊ณผ ๊ฐ์.
โ ์์๊ฐ ์๊ณ , ์ค๋ณต ๊ฐ๋ฅํ ์งํฉ ๊ตฌ์กฐ
โ ๊ตฌํ ํด๋์ค : Vector, ArrayList, LinkedList, Stack, Queue
3. Map ์ธํฐํ์ด์ค
โ ํค์ ๊ฐ์ ํ ์์ผ๋ก ์ด๋ฃจ์ด์ง๋ ๋ฐ์ดํฐ์ ์งํฉ
โ ํค๋ ์ค๋ณต ๋ถ๊ฐ๋ฅํ์ง๋ง ๊ฐ์ ์ค๋ณต ๊ฐ๋ฅ
โ ๊ตฌํ ํด๋์ค : HashMap, TreeMap, Hashtable, Properties

- List์ Set ์ธํฐํ์ด์ค์ ๊ฒฝ์ฐ Collection ์ธํฐํ์ด์ค๋ฅผ ์์
- Map ์ธํฐํ์ด์ค๋ ๊ตฌ์กฐ์์ ์ฐจ์ด๋ก ์ธํด ๋ณ๋ ์ ์

[ ์๋ฐ ์ปฌ๋ ์ ํ๋ ์์ํฌ(JCF) ์์ ]
public class JCFTest {
public static void main(String[] args) {
// -- Set<E> Interface --
Set <String> set = new HashSet <String>();
set.add("Gamma");
set.add("johnson");
set.add("helm");
set.add("์ด๊ฒฝ๊ท");
set.add("Gamma"); // ์ค๋ณต ๊ฐ ์ ์ฉ ์๋
System.out.println("== [Set ์ธํฐํ์ด์ค] HashSet ๊ฐ์ฒด ์ถ๋ ฅ ==");
System.out.println(set);
System.out.println("\n== [Set ์ธํฐํ์ด์ค] HashSet ๊ฐ์ฒด -> Iterator ์ถ๋ ฅ ==");
Iterator <String> iter = set.iterator();
while(iter.hasNext()) {
String str = iter.next();
System.out.println(str);
if(str.equals("Gamma")) {
iter.remove(); // Gamma ์ญ์
}
}
System.out.println("\n== [Set ์ธํฐํ์ด์ค] HashSet ๊ฐ์ฒด for-each๋ฌธ ์ถ๋ ฅ ==");
for(String sets : set) {
System.out.println(sets);
}
// -- List<E> Interface --
List <String> list = new ArrayList <String>();
list.add("lee");
list.add("lee"); // ์ค๋ณต ๊ฐ ๋ถ๊ฐ
list.set(0, "์ด๊ฒฝ๊ท"); // set() ๋ฉ์๋๋ฅผ ํตํด ์ํ๋ ์์น์ ๋ฎ์ด์ฐ๊ธฐ
list.set(1, "jin");
list.add(2, "Gamma");
System.out.println("\n== [List ์ธํฐํ์ด์ค] ArrayList ๊ฐ์ฒด ์ถ๋ ฅ ==");
System.out.println(list);
System.out.println("\n== [List ์ธํฐํ์ด์ค] ArrayList ๊ฐ์ฒด for-each๋ฌธ ์ถ๋ ฅ ==");
for(String lists : list) {
System.out.println(lists);
}
// -- Map<K, V> Interface --
Map <String, String> map = new HashMap<String, String>();
map.put("1", "cho");
map.put("1", "jin");
map.put("2", "jung");
map.put("3", "Lee");
System.out.println("\n== [Map ์ธํฐํ์ด์ค ์ถ๋ ฅ] HashMap ๊ฐ์ฒด ์ถ๋ ฅ ==");
System.out.println(map);
// Map ์๋ฃ๊ตฌ์กฐ์ get() ๋ฉ์๋
System.out.println(map.get("1"));
System.out.println("\n== [Map ์ธํฐํ์ด์ค ์ถ๋ ฅ] HashMap ๊ฐ์ฒด for-each๋ฌธ ์ถ๋ ฅ ==");
for(String maps : map.keySet()) { // keySet() ๋ฉ์๋ ์ฌ์ฉ
System.out.println("key = " + maps + ", value = " + map.get(maps));
}
}
}
/* [์ถ๋ ฅ๊ฒฐ๊ณผ]
== [Set ์ธํฐํ์ด์ค] HashSet ๊ฐ์ฒด ์ถ๋ ฅ ==
[Gamma, ์ด๊ฒฝ๊ท, johnson, helm]
== [Set ์ธํฐํ์ด์ค] HashSet ๊ฐ์ฒด -> Iterator ๊ฐ์ฒด ์ถ๋ ฅ ==
Gamma
์ด๊ฒฝ๊ท
johnson
helm
== [Set ์ธํฐํ์ด์ค] HashSet ๊ฐ์ฒด for-each๋ฌธ ์ถ๋ ฅ ==
์ด๊ฒฝ๊ท
johnson
helm
== [List ์ธํฐํ์ด์ค] ArrayList ๊ฐ์ฒด ์ถ๋ ฅ ==
[์ด๊ฒฝ๊ท, jin, Gamma]
== [List ์ธํฐํ์ด์ค] ArrayList ๊ฐ์ฒด for-each๋ฌธ ์ถ๋ ฅ ==
์ด๊ฒฝ๊ท
jin
Gamma
== [Map ์ธํฐํ์ด์ค ์ถ๋ ฅ] HashMap ๊ฐ์ฒด ์ถ๋ ฅ ==
{1=jin, 2=jung, 3=Lee}
jin
== [Map ์ธํฐํ์ด์ค ์ถ๋ ฅ] HashMap ๊ฐ์ฒด for-each๋ฌธ ์ถ๋ ฅ ==
key = 1, value = jin
key = 2, value = jung
key = 3, value = Lee
*/