-
[JAVA 19] 자바 가변 배열 ( Collection / 컬렉션) ① ListLanguage/Java 2018. 2. 11. 18:38반응형
3. 특징
1) List
(1) ' 순서 ' 가 보존된다.
(2) ' 중복 ' 이 허용된다.
① Generic
② Enhanced Loop ( 강화된 반복분 )
③ Boxing ( AutoBoxing / UnBoxing )
12345678910111213141516171819202122232425262728import java.util.*; // * = 모든 것을 임폴트 한다.class ListS1{ // List Study 1Vector v = new Vector(); // 제네릭을 사용하지 않았다.void in(){v.add(" 봄 "); // List 계열은 배열변수.add(); 로 저장한다.v.add(" 여름 ");v.add(" 가을 ");v.add(" 겨울 ");v.add(" 여름 "); // 여름을 중복 시켜 보았다.}void out(){for(int i=0 ; i < v.size() ; i++){ // v.size() 는 배열변수.length() 와 의미가 같다.Object obj = v.get(i); // get(); 데이터 가지고 오기String season = (String)obj;System.out.println(" v.get( " + i + " ) : " + season);}}public static void main(String[] args){ListS1 ls1 = new ListS1();ls1.in();ls1.out();}}cs ① Generic
1234567891011121314151617181920212223242526272829import java.util.*;class ListS2{Vector<String> v = new Vector<String>(); // Generic// jdk 5.0(=1.5이상)void in(){v.add(" 봄 ");v.add(" 여름 ");v.add(" 가을 ");v.add(" 겨울 ");v.add(" 여름 ");}void out(){for(int i=0 ; i < v.size() ; i++){/*Object obj = v.get(i); // GenericString season = (String)obj;*/String season = v.get(i);System.out.println(" v.get( " + i + " ) : " + season);}}public static void main(String[] args){ListS2 ls2 = new ListS2();ls2.in();ls2.out();}}cs ② Enhanced Loop ( 강화된 반복분 )
123456789101112131415161718192021222324252627282930313233343536373839404142434445import java.util.*;class ListS3{Vector<String> v = new Vector<String>();void in(){v.add(" 봄 ");v.add(" 여름 ");v.add(" 가을 ");v.add(" 겨울 ");v.add(" 여름 ");}void out1(){for(int i=0 ; i < v.size() ; i++){String season = v.get(i);System.out.println(" season : " + season);}}void out2(){for(String season : v){ // Enhanced Loop(jdk5.0 이상) , void out1() 과 같은 내용이다.System.out.println(" season : " + season);}}int is[] = {1 , 2 , 3 , 4 , 5};void out3(){for(int data : is){ // 고정 배열에서도 사용 가능하다.System.out.println(" data : " + data);}}public static void main(String[] args){ListS3 ls3 = new ListS3();ls3.in();ls3.out1();System.out.println("");ls3.out2();System.out.println("");ls3.out3();}}cs ③ Boxing ( AutoBoxing / UnBoxing )
12345678910111213141516171819202122232425262728293031323334import java.util.*;class ListS4{Vector<Integer> v = new Vector<Integer>();void in(){ // JVM이 자동으로 해준다. ↓v.add(10); // AutoBoxing (jdk5.0 이상)v.add(new Integer(20)); // int a = 20 → new Interger(a)v.add(new Integer(30)); // ← Boxing 개발자가 직접 해야한다.} // 현재는 할 필요 없다.void out1(){for(Integer it : v){int a = it.intValue(); // jdk5.0미만에서는 직접 했었다.int b = a; // UnBoxing (jdk5.0 이상)System.out.println("1. b : " + b);}}void out2(){for(int b : v){ // UnBoxing (jdk5.0 이상)System.out.println("2. b : " + b);}}public static void main(String[] args){ListS4 ls4 = new ListS4();ls4.in();ls4.out1();System.out.println("");ls4.out2();}}그래서 AutoBoxing 과 UnBoxing 은 무엇이냐?
1) AutoBoxing (오토박싱)
- 상자를 자동으로 꾸리다.
- 기본형(Primitive) 타입의 변수를 ' Wrapper Class ' 로 바꾸어 주는 것.
(1. Wrapper Class 는 나중에 하겠습니다.
죄송합니다. 연동되어 있는게 많으니 설명하는 것도 일이네요 ; - ; )
(2. 기본형(Primitive) 타입에는 8가지가 있는 것을 지난번 포스팅에서 다루었습니다.)
(3. 그렇다면 ' Wrapper Class ' ( 랩퍼클래스 / 래퍼클래스)에도 8가지가 있겠군요!!)
- char만 유일하게 String으로 박싱이 안된다.
2) UnBoxing (언박싱)
- 상자에서 내용물을 꺼낸다.
- ' Wrapper Class ' 타입의 값을 기본형(Primitive) 타입으로 바꾸어 주는 것.
그래도 아직 감이 안잡힐까봐, 한번 로직을 작성해 보았습니다.
이해가 가시나요? 복습을 하시다 보면 감이 오실 겁니다.
④ remove / clear ( 제거 / 삭제 / 깨끗 )
12345678910111213141516171819202122232425262728293031323334353637import java.util.*;class ListS5{Vector<Integer> v = new Vector<Integer>();// 가변배열 Vector (1)선언 + (2)생성int is[] = {1 , 2 , 3 , 4 , 5}; // 고정배열 Array (1)선언 + (2)생성 + (3)초기화void in(){for(int i : is){v.add(i); // 가변배열 Vector (3)초기화}}void out1(){v.remove(2); // 2번 자리에 있는 배열의 내용을 삭제한다. 0 1 2 이기 때문에 3이 사라진다.for(int i : v){System.out.println("1. i : " + i);}}void out2(){v.clear(); // 배열 안에 있는 모든 내용을 삭제한다.v.add(10); // 그리고 새로 2개를 추가하였다.v.add(20);for(int i : v){System.out.println("2. i : " + i);}}public static void main(String[] args){ListS5 ls5 = new ListS5();ls5.in();ls5.out1();System.out.println("");ls5.out2();}}cs remove 를 이용하면 , 배열 안의 하나의 값을 지우고,
clear 을 이용하면 , 배열 안의 모든 값을 지웁니다.
반응형'Language > Java' 카테고리의 다른 글
[JAVA 21] 자바 가변 배열 ( Map / 맵 ) ③ Map (0) 2018.02.12 [JAVA 20] 자바 가변 배열 ( Collection / 컬렉션) ② Set (2) 2018.02.12 [JAVA 18] 자바 가변 배열 ( Collection / Map 계열 ( 컬렉션 / 맵) ) (0) 2018.02.11 [JAVA 17] 자바 고정 배열 ( Array ) (0) 2018.02.10 [JAVA 16] 자바 제어문 예약어 ( break / continue / return ) (2) 2018.02.10