예제1)
//이런식으로는 안짠다고 함. 보여주려고짬
import java.util.Iterator;
import java.util.Vector;
public class Test4 {
public static void main(String[] args) {
/*
* List : 순서가 있다. 배열하고 유사한 구조
* 대표적인 구현 클래스 : Vector, ArrayList
* Vector : 동기화 지원
* ArrayList : 동기화 지원하지 않음(속도 빠름)
*/
// StringBuffer : 동기화 지원
// StringBuilder : 동기화 지원하지 않음(속도 빠름)
// 1.4 방식. 컴파일시 경고가 나옴.
Vector ob=new Vector();
// 벡터에 값 저장(
ob.add(new String("서울"));
ob.add(new String("부산"));
ob.add(new Integer("20"));
//벡터에 저장된 내용은 향상된 for, 이터레이터를 이용하여 처음부터 순회하면서 정보를 가져옴
Iterator it=ob.iterator();
while(it.hasNext()) {
//프로그램 실행중 런타임 오류 발생.
// 왜? String도 있고 Integer도 있으므로
// String s=(String)it.next();
// System.out.println(s);
Object oo=it.next();
if(oo instanceof String){
String s=(String)oo;
System.out.println(s);
}else if(oo instanceof Integer) {
Integer i=(Integer)oo;
System.out.println(i);
}
}
}
}
결과)
서울
부산
20
=======================================================================================================================================
예제2) ArrayList
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
public class Test5 {
public static void main(String[] args) {
// ArrayList<String>에서 <String>은 제너릭으로 JDK 5.0부터 사용가능하며 저장할 자료형을 명시. => String만 저장한다는 명령인셈
ArrayList<String> oo=new ArrayList<String>();
// ArrayList<String> oo=new ArrayList<>(); // JDK 7.0부터 뒤에 생략가능
//Vector 또는 ArrayList에 데이터 추가
oo.add("서울");
oo.add("부산");
oo.add("대구");
oo.add("인천");
oo.add("광주");
oo.add("대전");
oo.add("울산");
oo.add("세종");
//Vector 또는 ArrayList 전체 출력 -1
for(String s:oo)
System.out.println(s+" ");
System.out.println();
//Vector 또는 ArrayList 전체 출력 -2
Iterator<String>it=oo.iterator();
while(it.hasNext()){ // hsnext 다음의 데이타가 존재하면
String s=it.next();
System.out.println(s+" ");
}
System.out.println();
//vector또는 ArrayList 전체 출력 -3
for(int i=0; i<oo.size(); i++){
String s=oo.get(i);
System.out.print(s+" ");
}
System.out.println();
// 갯수 출력
System.out.println("개수 :"+oo.size());
// 처음 자료의 서울 -> seoul로 변경
oo.set(0, "seoul");
System.out.println(oo);
//0번째에 대한을 추가
oo.add(0,"대한");
System.out.println(oo);
//부산의 위치는
System.out.println("부산은 어디에 있나?"+ oo.indexOf("부산"));
//대구가 있나?
System.out.println(oo.contains("대구"));
//0번째 제거
oo.remove(0);
//세종제거
oo.remove("세종");
System.out.println(oo);
//오름차순 정렬
Collections.sort(oo);
System.out.println(oo);
//내림차순 정렬
Collections.sort(oo,Collections.reverseOrder());
System.out.println(oo);
}
}
예제2 결과)
서울
부산
대구
인천
광주
대전
울산
세종
서울
부산
대구
인천
광주
대전
울산
세종
서울 부산 대구 인천 광주 대전 울산 세종
개수 :8
[seoul, 부산, 대구, 인천, 광주, 대전, 울산, 세종]
[대한, seoul, 부산, 대구, 인천, 광주, 대전, 울산, 세종]
부산은 어디에 있나?2
true
[seoul, 부산, 대구, 인천, 광주, 대전, 울산]
[seoul, 광주, 대구, 대전, 부산, 울산, 인천]
[인천, 울산, 부산, 대전, 대구, 광주, seoul]