Stream (스트림) 스트림은 자바8부터 추가된 컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자이다. 데이터 컬렉션 반복을 멋지게 처리하는 기능이라고 생각하면 이해가 쉽다. Iterator와 비슷한 역할을 하지만 람다식으로 처리하기 때문에 코드를 좀 더 간결하게 할 수 있으며, 내부 반복자를 사용하므로 병렬처리가 쉽다는 점에서 차이가 있다. Iterator를 이용해 ArrayList의 요소를 모두 처리하기 위한 방법은 다음과 같다. ArrayList arrayList = new ArrayList(Arrays.asList(1,2,3)); Iterator iter = arrayList.iterator(); while(iter.hasNext()) { int num = iter..
Collection(컬렉션) : 데이터의 집합, 그룹 Java Collections Framework는 이러한 데이터, 자료구조인 컬렉션과 이를 구현하는 클래스를 정의하는 인터페이스를 제공한다. 개발에 소요되는 시간을 절약하면서 최적화된 알고리즘을 사용할 수 있다. Java Collection Framework 의 상속구조 Collection 인터페이스에 선언된 주요 메서드 메서드 설명 boolean add(E e) Collection에 객체를 추가 void clear() Collection의 모든 객체 제거 Iterator iterator Collection을 순환할 반복자(Iterator)를 반환 boolean remove(Object o) Collection에 매개변수에 해당하는 인스턴스가 존재할 ..
자바를 사용하다보면 abstract 와 interface 의 기능과 차이가 헷갈릴 때가 많다. 그래서 정리를 해보고자 글을 쓰게 되었다. abstract (추상클래스) 추상클래스는 0개/하나 이상의 추상메소드를 가지고 있다. 추상메소드는 추상메소드는 함수의 바디가 아직 구현되어 있지 않은 abstract로 정의된 메소드를 말한다. public abstract class Car { /* 추상 메소드 */ public abstract void drive(); public abstract void stop(); /* 일반 메소드 */ public void startCar() { System.out.println("시동을 켭니다"); } } public class AICar extends Car{ @Overri..