**JCF (Java Collection Framework)
Interface | Class |
- Collection - List : 순서 유지 / 중복data 가능 / ex)게시판 | - ArrayList |
- Vector | |
- Set : 순서유지X / 중복data 불가능(중복되면 덮어씀) / ex)장바구니 |
- HashSet |
- Map |
- Hashtable |
- Properties |
>배열이랑 비슷함. 배열의 단점 : 크기를 바꿀 수 없다.
>>JCF는 크기가 유동적이다.
List와 Set
package com.kitri.util.jcf;
import java.util.*;
public class CollectionTest {
public static void main(String[] args) {
// Collection coll = new ArrayList();
Collection coll = new HashSet();
System.out.println("초기 크기 : "+ coll.size());
coll.add("홍길동");
coll.add("이순신");
coll.add("강감찬");
coll.add("윤봉길");
// coll.add(new Integer(10));
// 쓸때는 오류 안나지만 불러올 때 Int를 String으로 바꾸지 못함으로 오류.
// 서로다른 DT을 넣는것은 필요가 없음
System.out.println("마지막 크기 : "+ coll.size());
// 크기가 유동적으로 바뀜
Object ob[] = coll.toArray(); //String 불가 get없음
int len = ob.length;
for(int i=0;i<len; i++) {
System.out.println((String) ob[i]);
} //Arraylist를 참조하면 때문에 순서가 그대로 나온다.
//HashSet을 참조하면 순서가 바뀌어서 나온다.
}
}
List
package com.kitri.util.jcf;
import java.util.ArrayList;
import java.util.List;
public class ListTest {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
System.out.println("list size ==" + list.size());
list.add("허경민");
list.add("정수빈");
list.add("박건우");
list.add("김재환");
System.out.println("list size ==" + list.size());
System.out.println("--- 두산의 타순 ---");
// String str[] = list.toArray(new String[0]);
// int len = list.size();
// for (int i = 0; i < len; i++) {
// System.out.println(i+1+"번 타자 : "+str[i]);
// }
int size = list.size();
for (int i = 0; i < size; i++) { //list는 get을 이용해서 i번째를 뽑을 수 있다.
System.out.println(i+1+"번 타자 : "+list.get(i));
}
String name ="정수빈";
// int im = list.indexOf(name);
// indexOf로 특정Object가 몇번째 있는지 찾을 수 있다. DTO 환경에서는 쓸 수없다.
// System.out.println(name + "은 "+(im+1)+"번 타자입니다.");
for(int i=0;i<size;i++) {
if(list.get(i).equals(name)) {
System.out.println(name + "은 "+(i+1)+"번 타자입니다.");
break;
}
}
String name2 ="오재원";
// list.set(im, name2);
// set으로 i번째 있는 element를 다른 것으로 바꿀 수 있다.
System.out.println(name + "을 "+name2+"로 교체");
// for (int i = 0; i < size; i++) {
// System.out.println(i+1+"번 타자 : "+list.get(i));
// }
for(int i=0;i<size;i++) {
if(list.get(i).equals(name)) {
list.set(i, name2);
System.out.println(i+1+"번 타자 : "+list.get(i));
break;
}
}
}
}
Set
package com.kitri.util.jcf;
import java.util.*;
public class SetTest {
public static void main(String[] args) {
Set<String> set = new HashSet<String>(); //<>안에 Type 지정
set.add("황선혜");
set.add("박미래");
set.add("이혜린");
set.add("조윤영");
set.add("박미래");
// 같은것을 썻기 때문에 덮어써짐. 따라서 set.size = 4
System.out.println("set의 크기 : "+set.size());
// .toArray() : Object 배열 안에 넣고 String으로 형변환
Object ob[] = set.toArray();
int len = ob.length;
for(int i=0;i<len;i++) {
System.out.println((String) ob[i]);
}
System.out.println("----------------------------------");
// .toArray(T[] a) : 한번에 type 지정할 수 있다. size는 0으로 하면 알아서 만들어줌
String str[] = set.toArray(new String[0]);
for(int i=0;i<len;i++) {
System.out.println(str[i]);
}
System.out.println("----------------------------------");
Iterator<String> iterate = set.iterator();
for(int i=0;i<len;i++) {
System.out.println(iterate.next());
}
System.out.println("----------------------------------");
while(iterate.hasNext()) {
System.out.println(iterate.next());
}
}
}
[출처] 빡쏘끼룩
'IT > JAVA' 카테고리의 다른 글
[Java] I/O (입출력) (java.io) - println, file (0) | 2020.10.24 |
---|---|
[Java] Exception - Runtime Exception (ArithMeticException, IndexOutOfBoundsE, NumberFormatException) (0) | 2020.10.23 |
[Java] Swing - CardLayout (창 넘어가기) (0) | 2020.10.14 |
[Java] Swing 간단한 예제 (WindowBuilder) (0) | 2020.10.09 |
[Java] WindowBuilder 설치&사용 (0) | 2020.10.08 |