[Java] Collection
- BACKEND/Java
- 2017. 10. 27. 11:44
● Collection
(1) Set
1) 저장 용도
2) 중복 제거
3) 정렬 순서 없다
4) HashSet,
LinkedHashSet,
TreeSet(중간에 Interface를 상속 받음 <SortedSet>/ 정렬기능만 추가된 기능), ...
- Treeset의 정렬 순서는 알파벳 순으로 정렬된다.
- 성능으로 보면 부모 인터페이스가 빠르다 자식은 상대적으로 느리다
- Iterator it = tree.iterator(); // 줄을 세우는 (정렬)기능
- it.hasNext() //데이터를 일괄적으로 한꺼번에 가져오려고 할때 쓰는 용도
package Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.TreeSet;
public class CollectionTest1 {
public static void main(String[] args) {
// Set계열의 클래스들
HashSet set = new HashSet();
set.add("carrie");
set.add("kabbin");
set.add("kairo");
set.add("kairo");
set.add("kariss");
//임의로 데이터가 저장되는 것
System.out.println("데이터 갯수 : "+ set.size());
System.out.println(set);
TreeSet tree = new TreeSet();
tree.add("juliet");
tree.add("ture");
tree.add("kabbin");
tree.add("terry");
tree.add("carrie");
System.out.println("데이터 갯수 : "+ tree.size());
System.out.println(tree);
Iterator it = tree.iterator(); // 줄을 세우는 (정렬)기능
while(it.hasNext()) { //데이터를 일괄적으로 한꺼번에 가져오려고 할때 쓰는 용도
System.out.println(it.next());
}
}
}
(2) List
1) 출력 용도
2) 중복 저장
3) 정렬 순서 있다
4) ArrayList, Vector, LinkedList, ...
- list.add("carrie"); //일반적이 추가 방법
- list.remove(3); // 3번째 Index에 있는 값을 지우기
- list.add(2,100); // 추가해줄때 특정 위치에 넣을때 Index값을 지정해서 넣어줄수있다.
- list.indexOf("kairo") //찾고자하는 위치를 알려주는 기능
- list.contains("kairo") //해당 문자열이 포함된 것을 찾는 기능
package Collection;
import java.util.ArrayList;
public class CollectionTest2 {
public static void main(String[] args) {
// List 계열 클래스
ArrayList list = new ArrayList();
list.add("carrie");
list.add("kairo");
list.add("kabbin");
list.add("kairo");
list.add("terry");
System.out.println("데이터 갯수 : "+ list.size());
System.out.println(list);
for(int i=0; i<list.size(); i++) {
System.out.println(list.get(i));
}
if(list.contains("kairo")) { // 해당 문자열이 포함된 것을 찾는 기능
System.out.println("찾았다.");
System.out.println(list.indexOf("kairo")+"번째 있다."); //찾고자하는 위치를 알려주는 기능
}else {
System.out.println("못찾았다.");
}
list.add(2,100); // 추가해줄때 특정 위치에 넣을때 Index값을 지정해서 넣어줄수있다.
System.out.println(list);
list.remove(3); // 3번째 Index에 있는 값을 지우기
System.out.println(list);
}
}
(3) Map
1) 검색 용도
2) 두개의 데이터를 묶어서 하나로 저장하는 방식 (Key, Value)
key : 검색할때 사용, value : 검색한 해당 값
기준값이 있으므로 데이터를 선별하기 쉬운 방식
3) HashMap, HashTable...
- map.keySet(); // Set에 map.keySet을 이용해서 모든
데이터의 주소값을 저장
- Iterator it = set.iterator(); //줄세우기(정렬)
package Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class CollectionTest3 {
public static void main(String[] args) {
//Map계열의 클래스
HashMap map = new HashMap();
map.put("key1", "홍길동");
map.put("key2", "임꺽정");
map.put("key3", "유비");
map.put("key4", "관우");
map.put("key5", "장비");
System.out.println("데이터 갯수 : "+map.size());
System.out.println(map);
System.out.println(map.get("key2"));
Set set = map.keySet(); // Set에 map.keySet을 이용해서 모든
데이터의 주소값을 저장
Iterator it = set.iterator(); //줄세우기(정렬)
while(it.hasNext()) { //현재 데이터가 있는지 검사해서
리턴값을 true/false 보내준다.
String key = (String)it.next(); //다음 값을 불러오는 기능
System.out.println(map.get(key));
}
}
}
'BACKEND > Java' 카테고리의 다른 글
[Java] 연습코딩-1 (0) | 2017.10.27 |
---|---|
[Java] Generic (0) | 2017.10.27 |
[Java] 인터페이스(Interface) (0) | 2017.10.26 |
[Java] Package (0) | 2017.10.25 |
[Java] 알고리즘 - 정렬 예제 (0) | 2017.10.20 |