어떤 문제가 발생되었을 때 해결할 수 있는 절차 혹은 순서
의미 없는 데이터를 하나의 정보로 만들어주는 알고리즘들의 집합,
수집한 자료를 저장하고 관리하는 방법.
컬렌션 프레임워크(Collection FrameWork) 자료구조
많은 데이터를 쉽고 효과적으로 관리할 수 있는 표준화된 방법을 제공하는 클래스들의 집합.
List 구현 클래스
Vector : 용량관리,보안성 강화,처리량 감소
LinkedList : RAM => 선입후출(FILO) 넣을때는 빠름
인덱스를 관리하지 않기 때문에, 가져올때는 박살남.(뺄때는 상대적으로 느리다)
ArrayList : 인덱스 있음. 메모리에 연결되어서 할당됨. 인덱스로 데이터를 관리한다.
컬렉션 클래스 중 실무에서 가장 많이 사용되는 클래스이다.
배열의 특징인 인덱스를 이용하여 값을 저장하고 관리한다.
//Collections.sort(datas) 오름차순
//Collections.reverse(datas) 내림차순
주소를 직접 전달하여 sort메소드에서 정렬이 되었기 때문에 전달한 datas의 값들이 정렬된 값으로 변경되어있다.
Set - 인터페이스(꼭 구현되어야 셋이므로)
중복된 데이터를 절대 집어넣지 않는다.
중복된 값이 필요없는 이유는 이 자료구조의 목적이 값의 유무를 검사하는 것이 목적이기 때문이기 그렇다.
집합에서는 중복되는 원소를 포함할 수 없는 것처럼 HashSet이라는 자료구조는 중복되는 값을 무시한다. 저장된 값들은 인덱스가 없기 때문에 순서가 없다. 값의 유무 검사에 특화되어 있는 자료구조이고, 해쉬코드로 유무검사가 진행된다. 검사의 속도가 상대적으로 좋다.인덱스가 없다는 것은 값을 가져올 수 없다는 것.
-순서 부여 :iterator()
->Hashset일때는 가져올 수 없는데, hashset에서 변환해서 가져오게 함
iterator() 이터레이터만의 순서가 따로 있음.
순서가 없는 객체에 순서를 부여하거나,순서가 있어도 iterator방식의 순서로 변경하고자 할때 사용한다.
hasNext()를 통해 다음 값이 있는지 검사하고, next()를 사용하여 값을 가져온다.
Map