12. Collection 컬렉션

CHOISUJIN·2022년 12월 29일
0
post-thumbnail

Collection 컬렉션

컬렉션은 객체만 저장 가능

**제네릭

List<Student> studentList = new ArrayList<Student>();
Set<String> set = new HashSet<String>();

장점
1. 저장하는 크기의 제약이 없다.
2. 추가, 삭제, 정렬 등의 기능 처리가 간단하게 해결된다
3. 여러 타입의 데이터가 저장 가능하다

  • 객체만 저장할 수 있기 때문에 필요에 따라 기본 자료형을 저장해야하는 경우
    Wrapper 클래스 사용 (Boolean , Character, Byte, Short, Integer, Long, Float, Double)
  • parsing : 데이터의 형식을 반환
    String 데이터를 기본 자료형으로 반환
int num1 = Integer.parseInt("100");
double num2 = Double.parseDouble("1.2345");

List

  • 배열 모양
  • 순서를 유지하고 저장 (인덱스로 관리)
  • 중복 저장 가능

ArrayList : 배열 형태 List의 가장 대표적인 자식 클래스

List<Student> studentList = new ArrayList<Student>();

List.add(Object e) : 리스트에 객체를 추가

List.get(index i) : 리스트에서 i번째 인덱스에 있는 객체 반환

int List.size() : 리스트에 저장된 데이터 개수를 얻는 방법

boolean List.isEmpty() : 비어있으면 true 반환

향상된 for문
for(컬렉션 or 배열에서 꺼낸 한개의 요소를 저장할 변수 : 컬렉션명 or 배열명)

for(Student std : studentList){
	System.out.println(std);

List.set(int index, Student e) : List의 index 요소를 전달받은 e로 변경, 이때 index번째에 있던 기존 값이 반환

** char gender = sc.next().charAt(0);

List.remove(int index) : 리스트에서 Index번째 요소를 제거, 이때 제거된 요소가 반환

String.toUpperCase() : 문자열을 대문자로 변경
String.toLowerCase() : 문자열을 소문자로 변경

boolean String.contains(문자열) : String에 문자열이 포함되어 있으면 true

Set

  • 주머니 모양
  • 순서를 유지하지 않고 저장 (==인덱스도 없음!)
  • 중복을 허용하지 않음 (+ null도 중복 허용 X)

HashSet : Set의 대표적인 자식 클래스

equals() , hashCode() 오버라이딩 필수 !!!

Set.add(String e) : 추가

Set.size() : 저장된 데이터의 개수 반환

Set.remove(String e) : Set에 저장된 객체 중 매개변수 e와 필드가 같은 객체를 제거

  • Hash라는 단어가 포함된 Set이면 hashCode()도 같아야 함.

hashCode() : 필드 값이 다르면 중복되지 않는 숫자를 만드는 메서드

Iterator(반복자)

컬렉션에 제공하는 컬렉션 객체 반복 접근자
== 컬렉션에 저장된 데이터를 임의로 하나씩 반복적으로 꺼내는 역할

Iterator<String> it = set.iterator();

set.iterator() : Set을 Iterator. 저장된 객체를 한번씩 가져오는 반복자 리턴

it.hasNext() : 다음 값이 있으면 true 반환
it.next() : 다음 값(객체)를 얻어옴

LinkedHashSet

HashSet과 거의 동일하지만, Set에 추가되는 순서를 유지함, 중복 제거

TreeSet

자동 정렬 Set (오름차순!!), 중복 제거

Map

Key : Value --> 키와 값은 모두 객체

  • Key를 모아두면 Set의 특징(중복X)
  • Value를 모아두면 List의 특징(중복O)

HashMap <K,V>

Map<Integer, String> map = new HashMap<Integer, String>();

Map.put(Integer Ket, String Value) : 추가
Key 중복 시 허용 X 대신, Value값을 덮어씀
Value 중복은 허용, (동명이인)

map.put(Key,Value) : 추가

map.keySet()
map.entrySet()

profile
매일매일 머리 터지는 중 ᕙ(•̀‸•́‶)ᕗ

0개의 댓글