본문으로 바로가기

컬렉션

category 프로그래밍/java 2017. 9. 19. 12:34

 컬렉션이란?


컬렉션이란, 우리말로 쉽게 말해서 자료구조 입니다. 더 쉽게 말하면 배열 입니다.

우리가 배웠던 배열이 아주 훌륭한 자료구조 입니다. 하지만 더욱 훌륭한 자료구조형을 JAVA에서는 많이 준비했습니다. 그리고 우리는 어려운 자료구조형의 내부를 공부할 필요 없이 그냥 사용만 하면 됩니다

]



JAVA도 결국 효과적인 데이터를 처리하기 위한 수단


JAVA도 다른 언어와 마찬가지로 결국에는 데이터를 효과적으로 관리하기 위한 언어 입니다.

책상을 정리하고, 창고를 정리하고, 책장을 정리하고 등등…. 모두 나중에 우리가 찾고자 하는 물건을 쉽게 찾기 위해서 정리를 합니다.

JAVA언어도 마찬가지 입니다. 무수히 많은 데이터를 어떤 형식으로 잘 정리하느냐에 따라 추후 데이터를 찾아서 사용 할 때 업무의 효율성이 높아 질 수 있습니다. 그래서 JAVA에서는 다양한 자료구조형를 제공 하고 있습니다. 다양한 자료구조형이 제공되는 이유는 데이터의 성질에 따라서 데이터를 관리(정리)해야 하는 방식이 다르기 때문입니다.

여기서 한가지 중요한 것은 자료구조형안에서는 객체의 레퍼런스만을 관리 합니다.


List계열 컬렉션 클래스 살펴보기


ArrayList는 배열과 매우 비슷합니다. 인덱스가 존재하며, 데이터는 중복되어도 상관 없습니다. 인덱스가 가장 중요 합니다.



List계열 컬렉션 클래스 살펴보기


import java.util.ArrayList;


public class Ex01 {


public static void main(String[] args) {

// TODO Auto-generated method stub

ArrayList<String> arrayList = new ArrayList<String>();

문자열 배열리스트 생성


arrayList.add("str1"); 배열리스트 추가

arrayList.add("str2");

arrayList.add("str3");

arrayList.add("str4");

System.out.println(arrayList.toString());

String index3 = arrayList.get(3);  3번째 문자열을 읽어들여 index3에 저장

System.out.println("index3 = " + index3); 

arrayList.set(2, "str2222222"); 2번째 문자열을 str2222222로 저장

int size = arrayList.size();  arraylist사이즈 출력

System.out.println("size : " + size);

arrayList.remove(2); 2번째 요소(문자열) 제거

System.out.println(arrayList.toString());

arrayList.clear(); 배열리스트 값을 전부 없앰

System.out.println(arrayList.toString());

arrayList = null;  메모리에 할당된 arraylist를 끊는다. 실행하면 에러발생 

System.out.println(arrayList);

System.out.println(arrayList.size());

}


}



List계열 컬렉션 클래스 살펴보기  비슷하다.



import java.util.ArrayList;

import java.util.LinkedList;


public class Ex02 {


public static void main(String[] args) {

// TODO Auto-generated method stub

LinkedList<String> linkedList = new LinkedList<String>();

linkedList.add("str1");

linkedList.add("str2");

linkedList.add("str3");

linkedList.add("str4");

System.out.println(linkedList.toString());

linkedList.add("str5");

System.out.println(linkedList.toString());

linkedList.set(2, "STR2");

System.out.println(linkedList.toString());

linkedList.set(2, "STR3");

System.out.println(linkedList.toString());

int size = linkedList.size();

System.out.println("사이즈는 : " + linkedList.size());

linkedList.remove(2);

System.out.println(linkedList.toString());

linkedList.clear();

System.out.println(linkedList.toString());

linkedList = null;

System.out.println(linkedList);

}


}




Map계열 컬렉션 클래스 살펴보기

Map계열의 자료구조는 쉽게 생각해서 지하철에 비치되어 있는 물품 보관함을 생각하면 됩니다. 물품 보관함의 경우 번호가 있지만, 번호가 중요한 것이 아니라, 해당 물품보관함의 키가 중요 합니다. 즉 키만 있으면 키에 해당하는 물품 보관함을 이용할 수 있습니다. Map이 바로 이런 것 입니다.

List계열과 달리 인덱스가 없고, 키와 값만 있습니다. 그리고 당연한 얘기지만, 키는 유니크 해야 합니다. 우리가 값을 관리하고자 한다면 키를 이용해서 값을 관리 할 수 있습니다.



import java.util.HashMap;

import java.util.Iterator;



public class Ex03 {


public static void main(String[] args) {

// TODO Auto-generated method stub

HashMap<Integer, String> hashMap = new HashMap<Integer, String>();

키,값

hashMap.put(0, "str0");

hashMap.put(1, "str1");

hashMap.put(2, "str2");

hashMap.put(3, "str3");

System.out.println(hashMap.toString());

String str = hashMap.get(2);

System.out.println(str);

hashMap.remove(2);

System.out.println(hashMap.toString());

hashMap.put(0, "str0");

hashMap.put(1, "str1");

hashMap.put(2, "str2");

hashMap.put(3, "str3");

System.out.println(hashMap.toString());

Iterator<Integer> iterator = hashMap.keySet().iterator();

while(iterator.hasNext())


{

String string = hashMap.get(iterator.next());

System.out.println(string);

}

}


}



 


'프로그래밍 > java' 카테고리의 다른 글

Enum  (1185) 2017.11.11
java 네트워크  (1212) 2017.09.21
다양한 애플릿  (1212) 2017.09.19
애플릿(애플릿, 애플릿 뷰어)  (1194) 2017.09.16
동기화  (1036) 2017.09.15