List : 순서가 있는 데이터의 집합. 데이터의 중복을 허용한다.
ArrayList, LinkedList, Stack, Vector 등
Set : 순서가 없는 데이터 집합. 데이터의 중복을 허용하지 않는다.
HashSet, TreeSet 등
Map : 키(key)와 값(value)의 쌍(pair)으로 이루어진 데이터의 집합.
순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용한다.
HashMap, TreeMap, Hashtable, Properties 등
Collection 인터페이스의 메서드
- boolean add(Object o) / boolean addAll(Collection c) : 추가
- void clear() : Collection의 모든 객체를 삭제
- boolean contains(Object o) / boolean containsAll(Collection c) : 지정된 객체(o) 또는 Collection의 객체들이 Collection에 포함되어 있는지 확인한다.
- boolean isEmpty() : 비여있는지 확인
- boolean remove(Object o) / boolean removeAll(Collection c) : 삭제
- boolean retainAll(Collection c) : 지정된 Collection에 포함된 객체만을 남기고 다른 객체들은 Collection에서 삭제한다.
이 작업으로 변화가 있으면 true 없으면 false를 리턴한다.
- int size() : Collection에 저장된 객체의 수를 반환한다.
List 인터페이스 - 순서 O, 중복 O
List - Vector(동기화O) - Stack
- ArrayList** (동기화X): 벡터를 개선한것
- LinkedList**
List 인터페이스 메서드
- void add(int index, Object o) / boolean addAll(int index, Collection c) : 지정된 위치에 추가
- Object get(int index) : 지정된 위치(index)에 있는 객체를 반환한다.
- Object set(int index, Object o) : 지정된 위치의 객체를 변경
- int indexOf(Object 0 ) : 지정된 객체의 인덱스 찾기 (앞에서 부터 찾기)
- int lastIndexOf(Object 0 ) : 지정된 객체의 인덱스 찾기 (뒤에서 부터 찾기)
- Object remove(int index) : 지정된 위치의 객체삭제, 삭제된 객체 반환
- void sort(Comparator c) : 정렬
List list = new ArrayList<String>();
list.add("a");
list.add("b");
list.set(0, "d");
list.add(0, "f");
list.add(0, "z");
list.add(0, "h");
// 내림차순 정렬
list.sort(Comparator.reverseOrder());
// 오름차순 정렬
list.sort(Comparator.naturalOrder());
*** 정렬
1. Comparator 인터페이스 구현
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
class Student{
String name;
int math;
int science;
Student(String name, int math, int science){
this.name = name;
this.math = math;
this.science = science;
}
}
public class CollectionMain {
public static void main(String [] args){
List<Student> studentList = new ArrayList<Student>();
studentList.add(new Student("A", 20, 30));
studentList.add(new Student("B", 40, 50));
studentList.add(new Student("C", 30, 30));
Collections.sort(studentList, new Comparator<Student>() {
@Override
// o1 앞에거 o2 뒤에꺼
// 리턴 음수 : 바꾸기
// 리턴 양수 : 그대로
public int compare(Student o1, Student o2) {
// 큰 것이 위로
if(o1.science < o2.science)
return 1;
else if(o1.science > o2.science)
return -1;
else{
// 과학 점수가 같으면 수학점수 확인
if(o1.math < o2.math){
return 1;
}else{
return -1;
}
}
}
});
for (Student tmp : studentList
) {
System.out.println(tmp.name);
}
}
}
수행결과
2. Comparable 인터페이스 구현
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
class Student2 implements Comparable<Student2>{
String name;
int math;
int science;
Student2(String name, int math, int science){
this.name = name;
this.math = math;
this.science = science;
}
@Override
public int compareTo(Student2 o) {
if(this.science < o.science)
return 1;
else if(this.science > o.science)
return -1;
else{
if(this.math < o.math){
return 1;
}else{
return -1;
}
}
}
public class CollectionMain {
public static void main(String [] args){
List<Student2> studentList2 = new ArrayList<Student2>();
studentList2.add(new Student2("A", 20, 30));
studentList2.add(new Student2("B", 40, 50));
studentList2.add(new Student2("C", 30, 30));
Collections.sort(studentList2);
for (Student2 tmp : studentList2
) {
System.out.println(tmp.name);
}
}
}
}
- List subList(int fromIndex, int toIndex) : 지정된 범위로부터 객체 반환
Set 인터페이스 - 순서 X, 중복 X
Set - HashSet**
- SortedSet - TreeSet**
Set 인터페이스 메소드 = Collection인터페이스 메소드와 동일
집합과 관련된 메소드 : 변화가 있으면 true 아니면 false 리턴
- boolean addAll(Collection c) : 합집합. 객체들을 추가한다.
- boolean containsAll(Collection c) : 부분 집합. 객체들이 포함되어 있는지 확인.
- boolean removeAll(Collection c) : 차집합. 지정된 Collection에 포함된 객체들을 삭제한다.
- boolean retainAll(Collection c) : 교집합. 지정된 Collection에 포함된 객체만 남긴다.
Map 인터페이스 - 순서 X, 중복(키 X, 값 O)
Map - HashTable
- HashMap**(HashTable의 최신버전) - LinkedHashMap
- SortedMap - TreeMap **
Map 인터페이스 메소드
- Object put(Object key, Object value) : 맵에 추가
- void putAll(Map m) : 추가
- Object remove(Object key) : 키 같은것을 삭제
- boolean containsKey(Object key) : 키가 같은 것을 확인
- boolean containsValue(Obejct value) : 값이 같은 것을 확인
- Object get(Object key) : 키 같은것 찾아서 반환
- Set entrySet() : Map에 저장되어 있는 key-value쌍을 Map.Entry타입의 객체로 저장한 Set반환
- Set keySet() : 모든 Key 객체를 반환
- Collection values() : 모든 value 객체를 반환
'개발' 카테고리의 다른 글
Java - LinkedList (0) | 2021.06.06 |
---|---|
Java - ArrayList (0) | 2021.06.06 |
Java - 형식화 클래스 (0) | 2021.06.06 |
Java - 날짜와 시간 (0) | 2021.06.06 |
Java - 래퍼클래스(wrapper) (0) | 2021.06.06 |