- java.util.Random
- 랜덤한 숫자를 생성할 때 사용
- import 필요
- random.nextInt(n)
- java.util.Arrays
- 일반적인 용도는 배열에 저장된 데이터를 정렬
- 특정 배열의 내용을 복사하여 새로운 배열 객체 만들기
- Arrays.sort
- Arrays.copyOf
- java.util.StringTokenizer
- &를 기준으로 끊어 낼 수 있음. &를 토큰이라고 함 // String의 spilt과 비슷한 개념
- Token(토큰) : 문자열을 특정기호를 기준으로 분리할 때에 각각의 문자열
- 문자를 자르거나 추출할때 사용 ⇒ 특정 문자열에서 원하는 데이터 쉽게 추출 가능
- 데이터가 없는 영역이 존재(Before First, After Last)
- java.util.Date
- java.util.Calendar
- .getInstance → 캘린더 객체 하나가 리턴되는 것
- new 불가.
- 정교한 날짜와 시간 정보가 필요할 때
- java.util.List
- 배열하고 같음
- ArrayList 디폴트 생성자 생성 → 10개의 저장공간이 생김
- 11번째에 데이터를 넣고자 하면? ⇒ 10개가 자동으로 늘어남 → 총 20개의 저장공간이 됨 ⇒ 배열의 한계 극복
- 중복 허용
- .add로 객체를 집어 넣을 수 있음 → list collection에 들어갈 때에는 object로 타입이 변해서 들어가게 됨
- add는 Object타입의 매개변수를 갖고 있음
- integer타입으로 받으면 참조변수를 통해 integer 클래스가 제공하는 것들을 사용할 수 있음 → 그렇기 때문에 명시적 형 변환을 함
- 집어 넣을 때 add, 꺼낼 때 get
- 배열의 length와 비슷한 것이 size 메소드
- 제네릭(Generic)
- 타입 제한이 가능하다 즉, 다른 타입의 객체를 사용할 수 없는 것
- → Ex) Integer타입으로 지정했을 때 Integer 파일이 아닌 것은 컴파일 에러
- java.util.Set
- HashSet : 똑같은 데이터를 가진 객체를 저장하지 않음
- 주소값만 나오면 toString 오버라이딩
- 내용이 같은지 비교하려면 equals()와 hashCode() 오버라이딩 해야함
- ArrayList와 HashSet과의 차이점
- ArrayList는 데이터 중복이 가능하다
- ArrayList는 0번부터 들어감. 순서가 그대로 보장. But, HashSet은 순서 보장이 되지 않음
- HashSet은 실행할 때 마다 순서가 바뀜
- ArrayList = 자동으로 길이 늘어나고 add로 데이터 넣고 get으로 꺼냄(명시적 형 변환 해야함) remove 메소드는 특정 인덱스 위치에 있는 객체를 삭제 가능하며 삭제하면 자동으로 한칸식 자리이동하게 됨
- java.util.Map
- HashMap보다 HashTable이 더 낫다
- HashMap을 주로 쓴다
- ArrayList 두개를 붙여놓은 모양
- Key와 Value 형태로 관리. 반드시 쌍으로 묶어서 관리
- 원래는 Key, Value가 Object 형태. But Generic을 사용해서 특정 타입 지정
- Key, Value를 쌍으로 등록 (put으로) <String, 객체이름>
- Map은 빠른 검색을 위해 사용함
- Key가 중복된다면? → 덮어씀
- 꺼낼 때 get(원래return type은 Object) → 하지만 명시적 형 변환해야 함 / 인덱스가 아닌 key를 이용하여 꺼냄
- 삭제할 때 remove / 인덱스가 아닌 key를 이용하여 삭제
- 등록 put
- Key나 Value 목록만 꺼낼 수 있음
- .keySet() → return type : Set → 중복되는 데이터를 허용하지 않는 메소드(MapTest1 참고)