Java- CollectionFramework
| CollectionFramework
다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다.
즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것이다.
List, Map, Set, Stack, Queue 등이 있다.
특징
제작자의 편의성이 증가
유지보수 용이
1) 배열 리스트 ArrayList - 탐색을 자주하는 프로그램에 주로 사용됨
index를 사용하는 구조
2) 연결 리스트 LinkedList - 주소를 직접 연결하는 구조
데이터 변경(추가, 삭제 등)이 자주 발생하는 프로그램과 주로 사용됨
사용자의 입장에선 둘 다 같아보인다 > 그러나 각자 유리하거나 불리한 순간이 있음
ArrayList
순서가 있는 데이터의 집합, 데이터 중복 허용
사용방법
컬렉션 생성
ArrayList<> 객체명 = new ArrayList<>();
객체명.add(값) - 배열에 값 삽입
객체명.add(인덱스위치, 값) - 인덱스 위치에 값 삽입
객체명.clear() - 배열 값 전부 삭제
객체명.remove(인덱스 위치) - 인덱스 위치에 해당하는 데이터 삭제
객체명.get(인덱스 위치) - 인덱스 위치에 해당하는 데이터 출력
객체명.isempty() - 해당 배열이 비어있는지? -> boolean type으로 출력
객체명.size() - 배열 길이 출력
1. Practice
package class01;
import java.util.ArrayList;
class A{
int a;
int b;
A(int a, int b){
this.a = a;
this.b = b;
}
@Override
public String toString() {
return "A 클래스로 만든 객체";
}
}
public class Teset01 {
public static void main(String[] args) {
//컬렉션 프레임 워크
//ArrayList
ArrayList al = new ArrayList();
System.out.println(al);
//toString()이 오버라이딩 됨
al.add(10);//값 추가
al.add(20);
System.out.println(al);
al.add(0,30); //위치, 값
System.out.println(al);
// al.clear(); //모든 값 삭제
// System.out.println(al);
System.out.println(al.get(2)); // get > index에 들어간 값 출력
System.out.println(al.isEmpty()); //현재 배열이 비어있는 상태인지? >> False
// al.clear();
// System.out.println(al.isEmpty()); //true
al.remove(1); //index 0번의 값 삭제
System.out.println(al);
System.out.println(al.size()); //배열의 길이 출력
al.add(3.14);
al.add("apple");
al.add(new A(-1,-2)); //클래스까지 호출이 가능하다.
A a=new A(1,2);
al.add(a);
System.out.println(al);
}
}

2. Practice

| 제네릭
컬렉션에 저장될 데이터들의 타입(자료형)을 '강제' 하는 것
모든 컬렉션에는 제네릭을 추가해서 사용한다.
사용방법
객체<타입> 객체명 = new 객체<타입>();
1. Practice

2. Practice

| Set
순서가 없고 데이터 중복을 허용하지 않음
사용방법
컬렉션 생성
HashSet<> 객체명 = new HashSet<>();
1. Practice

2. Practice

| Map
키(key)와 값(value)의 쌍으로 이루어진 데이터 집합으로 순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용
사용방법
Map<Key, Value> 객체명 = new HashMap<>(); //<key의 변수타입, value의 변수타입>
객체명.put(키, 값) - 데이터 추가
객체명.get(키) - 키 값에 해당하는 데이터 호출
객체명.remove(키) - 키 값에 해당하는 데이터 삭제
1. Practice

2. Practice
