JAVA 컬렉션(Collection)

suebeen·2021년 8월 7일
0

Java

목록 보기
4/7
post-thumbnail

Collection 인터페이스

  • 컬렉션 인터페이스는 하나의 자료를 모아서 관리하는 데 필요한 기능을 제공한다.

  • Collection 인터페이스 하위에 LIst 인터페이스, Set 인터페이스가 있다.

  • List는 순차적인 자료 관리, Set 인터페이스는 중복되지 않는 객체를 다룰 때 사용한다.

    자주 사용하는 메서드설명
    boolean add(E e)Collection에 객체 추가
    void clear()Collection의모든 객체 제거
    Iterator iteratorCollection을 순환할 반복자(iterator) 반환
    boolean remove(Object o)Collection에 매개변수에 해당하는 인스턴스가 존재하면 제거
    int size()Collection에 있는 요소의 개수 반환

Iterator

  • 여러 데이터의 묶음을 풀어서 하나씩 처리할 수 있는 수단을 제공한다.
  • next()를 통해서 다음 데이터를 조회할 수 있다.
while(iter.hasNext()){
	System.out.println(iter.next());
}
  • 단, 이전데이터를 조회할 수는 없다.

Method Chaining

  • 메서드가 객체를 반환하게 되면, 메서드의 반환 값인 객체를 통해 또 다른 함수를 호출할 수 있다.
new MyCollection<>(Arrays.asList("A","AB","ABC","ABCD","ABCDE"))
	.map(String::length)
	.filter(i -> i%2==1)
	.foreach(System.out::println);

Stream

  • 여러 자료의 처리에 대한 기능을 구현해 놓은 클래스
  • 스트림을 활용하면 배열, 컬렉션 등의 자료를 일관성 있게 처리할 수 있다.
  • 연속된 데이터에 대해서 풍부한 고차함수들을 사용하여 강력한 기능을 간결하게 표현할 수 있다.

주의 !!
primitive(int)에 대한 스트림은 만들 수 없기 때문에 IntStream으로 만들어야 한다 → boxed()사용하면 Stream 가능

특징
1. 자료의 대상과 관계없이 동일한 연산을 수행한다.
2. 한 번 생성하고 사용한 스트림은 재사용할 수 없다.
3. 스트림의 연산은 기존 자료를 변경하지 않는다.
4. 스트림의 연산은 중간 연산과 최종 연산이 있다.

Optional

  • NPE : Null Pointer Exception - 가장 많이 발생하는 에러중의 하나
  • 자바에서는 거의 모든것이 레퍼런스 → 거의 모든것이 null이 될 수 있다.
  • 이제부터 null을 쓰지마!! → 서로 약속하기로
  • Optional : null 이 담긴 바구니, 운반시켜주는 캐리어
    • null 데이터 : Optional.empty()
    • 데이터 : Optional.of( {DATA} )
    • 확인하는 방법 : .isEmpty(), .isPresent()
if (optionalUser.isPresent()) {
/// do 1
}else {
//// do 2
}

if (optionalUser.isEmpty()) {
// do 2
}else {
// do 1
}

optionalUser.ifPresentOrElse(user -> {
// do 1
}, () -> {
// do 2
});

optionalUser.ifPresent(user -> {
// do 1
});

0개의 댓글