Collection FrameWork는 값을 담을수있는 그릇을 의미한다
list는 순서를 유지하고 중복을허용한다
set은 순서를 유지하지 않고 중복을 허용하지 않는다

 

//public class
//main
String [] arr = new String[2];
arr[0] = "apple";
arr[1] = "orange";
arr[2] = "grape"; //배열의 크기가 2 이므로 error가 생긴다

for(int i=0;i<arr.length;i++) {
System.out.println(arr[i]);
} //일반적인 배열을 이용하는방법
--------

import java.util.ArrayList;

//public class
//main 
ArrayList al = new ArrayList();
al.add("apple");
al.add("orange");
al.add("grape"); 

//add란 method를 이용해 data를 입력한다

//data를 추가한만큰 배열크기가 증가한다 

//ArrayList는 Object type으로 값을 저장하기때문에

//모든 data type을 입력할수있다


for(int i=0;i<al.size();i++) {
String str = (String)al.get(i); 

System.out.println(str);

//ArrayList 는 size를 이용해 크기를 확인하고

//get이란 method를 이용해 값을 불러온다

//자식type으로 부모type의 data를 가져올때 형변환을해줘야한다

-------

import java.util.ArrayList;

//public class
//main 
ArrayList<String> al = new ArrayList<String>(); 

//generic을 이용해 String type 의 ArrayList를 만든다
al.add("apple"); 
al.add("orange"); 
al.add("grape"); 


for(int i=0;i<al.size();i++) { 
String str = al.get(i); 

System.out.println(str);

//generic을 이용할경우 형변환을 안해줘도된다

-----------

import java.util.ArrayList;

import java.util.Iterator;

import java.util.HashSet;

//public class

//main
ArrayList<String> al = new ArrayList<String>();
//ArrayList를 Collection으로 바꿔도 부모형이기때문에 문제가없다
al.add("first");
al.add("second");
al.sdd("third");
al.add("third");//중복이 가능하다

Iterator ai = al.iterator(); //Iterator은 collection에 접근하기위한 객체이다
while(ai.hasNext()) { 
System.out.println(ai.next()); 
} //순서를 유지하면서 중복된 data도 출력한다

HashSet hs = new HashSet();
//HashSet을 Collection으로 바꿔도 부모형이기때문에 문제가없다
hs.add("first");
hs.add("second");
hs.add("third");
hs.add("third"); //중복이 불가능하다

Iterator hi = hs.iterator();
while(hi.hasNext()) {
System.out.prinln(hi.next());
//순서가 유지되지않고 중복된 data를 허용하지 않는다

 

//Iterator은 hasNext, next, remove라는 3개의 method를 가지고있다 
//hasNext: 접근가능요소를 점검하고 true,false값을 반환한다 
//next: true값으로 읽어올 요소가 있다면 가져온다 
//remove는 next다음 요소를 지우는데 사용된다 
-----------

import java.util.HashSet;

//public class

//main
HashSet<String> A = new HashSet<String>();
A.add("a");
A.add("b");
A.add("c");

HashSet B = new HashSet();
B.add("c");
B.add("d");
B.add("e");

HashSet C = new HashSet();
C.add("a");
C.add("b");

A.containsAll(B); //containsAll method는 부분집합인경우  true값을 반환한다
System.out.println(A.containsAll(B)); //false값이 나온다
System.out.println(A.containsAll(C)); //true값이 나온다

A.addAll(B); //A에 중복된값을 제외한 B값을 더해준다(합집합), 출력시 abcde값 모두가 출력된다
A.retainAll(B): //중복된값을 출력(교칩합), 출력시 c값이 출력된다
A.removeAll(B): //A에 중복된 B값을 제외한다(차집합), 출력시 ab출력
Iterator hi = A.iterator();
while(hi.hasNext()) {
System.out.println(hi.next());
} //hasNext로 각요소에 접근해서 next로 가져온다
--------

import java.util.HashMap;

import java.util.Set;

import java.util.Set;

//public class
//main
//Map은 key와 value의 값으로 구성되있는데

//key값은 중복되어선안되지만 value값은 중복을 허용한다


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

//put method를 이용하여 data를 입력한다
tel.put("seoul", "01");  
tel.put("busan", "02");
tel.put("daegu", "03");

 

//data를 불러오기위해 get(key) 을 이용한다
System.out.println(tel.get("seoul"));  
System.out.println(tel.get("busan"));
System.out.println(tel.get("daegu"));

 

//Map class에 각각의 key,value값을 entry 라고하고 이를 Entry class라고한다 

//Map 이란 interface안에 entrySet method를 이용해서

//entry객체로 set을 구성하여 iterator로 접근할수있다

//Entry class에는 Map에 접근하기위해 getKey,getValue method가 존재한다
Set set = tel.entrySet(); //set을 만들면 iterator를 이용할수있다
Iterator it = set.iterator(); 
while(it.hasNext()) {
Map.Entry e = (Map.Entry)it.next(); //entry가 Object type이기때문에 형변환을 해줘야한다
System.out.println(e.getValue()+e.getKey()); //entry에 method를 이용해 정보를 가져온다
}

//generic을 이용해 미리 type을 설정할수있다
Set<Map.Entry<String, String>> set = tel.entrySet();  
Iterator<Map.Entry<String, String>> it = set.iterator(); 
while(it.hasNext()) {
Map.Entry e = it.next(); 

//미리 type이 설정되었기때문에 형변환을 해줄필요가 없다
System.out.println(e.getValue()+e.getKey());
}
-------------

//public class
//main
HashMap<String, String> tel = new HashMap<String, Integer>();
tel.put("seoul", "01");
tel.put("busan", "02");
tel.put("daegu", "03");

Set<Map.Entry<String, String>> set = tel.entrySet();

for(Map.Entry<String, String> e :set) {  
System.out.println(e.getValue()+e.getKey());
} //Map.Entry<String, String> type으로 set data를 e에 가져온다

'java' 카테고리의 다른 글

Generic  (0) 2019.08.04
이넘클래스(enum class)  (0) 2019.08.03
wrapper class  (0) 2019.08.03
Object class(toString(), Equals(), hashCode())  (0) 2019.08.03
예외처리(Exception)  (0) 2019.08.03

+ Recent posts