Programming/JAVA (139) 썸네일형 리스트형 컬렉션 프레임워크(2) - List 컬렉션 4 : Vector Vector는 기본적으로 ArrayList와 동일한 구조를 갖고 있습니다. 그래서 생성, 사용 방식 자체는 ArrayList와 크게 다르지 않습니다. List list = new Vector(); 그럼, ArrayList와 동일한 형태인데 굳이 Vector를 사용해야 하는 이유가 있을까요? 간단하게 요약하면, 이것은 Thread Safe - 즉, 스레드 상황에서 안전성을 보장하기 때문입니다. ArrayList와 다른 점은 Vector의 경우 동기화된(synchronized) 메서드로 구성되기 때문에 멀티 스레드일 경우, 동시에 이 메서드를 실행할 수 없다는 특징을 갖습니다. 즉, 하나의 스레드가 실행을 완료해야만 다른 스레드를 실행할 수 있다는 것이죠. 결국 멀티 스레드에서 안전하게 객체를 추가하거나 삭.. 컬렉션 프레임워크(2) - List 컬렉션 3 : Linked List LinkedList는, 앞서 살펴보았던 ArrayList와 사용방법은 동일하지만, 내부 구조가 완전히 다른 List 구현 클래스입니다. 기본적으로 ArrayList는 배열(인덱스)을 기반으로 관리하지만, LinkedList는 인접참조를 통해 체인처럼 연결한 객체를 관리하게 됩니다. 컬렉션 프레임워크(2) - List 컬렉션 2 : ArrayList 앞서서 우리는 List라는 기본적인 컬렉션에 대해서 살펴보았습니다. 일렬로 늘어놓고, 객체를 인덱스 기반으로 관리한다고 했죠. 그리고 이는 하나의 인터페이스이기 때문에, 구현 클래스들이 nozeroslope.tistory.com 위에서 말씀드렸다시피, 기본적으로 ArrayList와 LinkedList는 사용법 자체는 동일합니다. 인덱스 기반으로 배열처럼 생성과.. 컬렉션 프레임워크(2) - List 컬렉션 2 : ArrayList 앞서서 우리는 List라는 기본적인 컬렉션에 대해서 살펴보았습니다. 일렬로 늘어놓고, 객체를 인덱스 기반으로 관리한다고 했죠. 그리고 이는 하나의 인터페이스이기 때문에, 구현 클래스들이 존재하고 이 구현 클래스를 기반으로 사용하게 됩니다. 컬렉션 프레임워크(2) - List 컬렉션 1 : List의 개념 앞서서 살펴본 컬렉션 프레임워크의 기본 개념을 바탕으로, 하나씩 세부 사용법을 살펴보도록 하겠습니다. 우선 List 컬렉션에 대해서 먼저 살펴보겠습니다. 컬렉션 프레임워크(1) - 컬렉션 프레 nozeroslope.tistory.com ○ ArrayList ArrayList는 List 인터페이스의 구현 클래스 중 하나로, 상당히 많이 사용되는 구현 클래스입니다. 일반적인 JAVA의 배열과 ArrayLis.. 컬렉션 프레임워크(2) - List 컬렉션 1 : List의 개념 앞서서 살펴본 컬렉션 프레임워크의 기본 개념을 바탕으로, 하나씩 세부 사용법을 살펴보도록 하겠습니다. 우선 List 컬렉션에 대해서 먼저 살펴보겠습니다. 컬렉션 프레임워크(1) - 컬렉션 프레임워크 개념 우선 컬렉션 프레임워크(Collection Framework)란 무엇을 의미하고, 왜 사용하는지에 대해서 먼저 짚고 넘어가도록 하겠습니다. 개발 과정에서 여러 개의 객체를 사용해야 하는 경우가 발생합니다. Pro nozeroslope.tistory.com ○ List 컬렉션의 특성 List 컬렉션은 기본적으로 객체를 일렬로 늘어 놓고, 인덱스로 관리하는 구조입니다. 객체 자체의 데이터를 저장하는 것은 아니며, 흔히 아는 참조 타입과 마찬가지로 특정 객체의 메모리 주소 번지를 참조하는 구조입니다. 그렇기 .. 컬렉션 프레임워크(1) - 컬렉션 프레임워크 개념 우선 컬렉션 프레임워크(Collection Framework)란 무엇을 의미하고, 왜 사용하는지에 대해서 먼저 짚고 넘어가도록 하겠습니다. 개발 과정에서 여러 개의 객체를 사용해야 하는 경우가 발생합니다. Product 인스턴스를 10개를 다루어야 하는 상황이라고 가정해 볼까요? 어찌어찌 10개의 인스턴스를 생성하고 저장해 둔 다음, 조회하거나 꺼내서 사용하려면 어떤 방법을 사용해야 할까요? 우선 기본적으로는 배열을 사용할 수 있겠습니다. // 1. 길이가 10인 배열 생성 Product[] array = new Product[10]; // 2. 객체 추가 array[0] = new Product("Model1"); array[1] = new Product("Model2"); // 3. 객체 검색 및 적.. 람다식(5) - 메서드 참조 4 : 생성자 참조 메서드 참조(method references)라는 것은, 단순한 메서드 호출로만 구성된 람다식을 대체하는 개념이었습니다. (left, right) -> Math.max(left, right); // 메서드 참조 Math :: max; 이 개념을 생성자 호출에 적용해 보도록 하겠습니다. 생성자를 호출한다는 것은, 인스턴스를 생성해 낸다는 의미입니다. 그런데 이 생성자 호출에 있어서도 단순히 인스턴스 생성 후 리턴만 완료한다면, 이 역시 메서드 참조의 일종인 생성자 참조로 대체할 수 있습니다. 아래와 같은 케이스가 있다고 가정해 보겠습니다. (a, b) -> { return new 클래스(a,b); } 생성자 참조도 메서드 참조와 비슷한 형태로 사용할 수 있습니다. 클래스의 이름을 작성하고 :: 기호를 붙인.. 람다식(5) - 메서드 참조 3 : 파라미터의 메서드 참조 우리가 참조하게 되는 메서드의 경우, 람다식 외부의 어떤 클래스의 멤버일 수도 있으며 람다식에서 제공되는 파라미터의 멤버일 수도 있습니다. 우리가 앞서 살펴본 아티클에서는 람다식 외부의 클래스 멤버인 메서드를 호출하는 경우를 살펴보았습니다. 람다식(5) - 메서드 참조 2 : 정적 메서드, 인스턴스 메서드 참조 앞서 살펴본 메서드 참조의 개념을 활용해서 정적(static) 메서드를 참조하는 경우와 인스턴스 메서드를 참조하는 경우를 각각 살펴보도록 하겠습니다. 람다식(5) - 메서드 참조 1 : 메서드 참조의 nozeroslope.tistory.com 이번에는 람다식 자체에서 제공되는 파라미터의 메서드를 호출해서 다른 파라미터를 인자 값으로 사용하는 경우도 있습니다. 이를 테면 파라미터 a의 메서드를 호출.. 람다식(5) - 메서드 참조 2 : 정적 메서드, 인스턴스 메서드 참조 앞서 살펴본 메서드 참조의 개념을 활용해서 정적(static) 메서드를 참조하는 경우와 인스턴스 메서드를 참조하는 경우를 각각 살펴보도록 하겠습니다. 람다식(5) - 메서드 참조 1 : 메서드 참조의 개념 메서드 참조(Method References)의 개념은, 메서드를 참조해서 파라미터의 정보와 리턴 타입을 알아낸 다음 람다식에서 불필요한 파라미터를 제거하는 것이 목적입니다. 즉, 생략할 수 있는 것은 생 nozeroslope.tistory.com // 정적 메서드 참조 클래스 :: 메서드 // 인스턴스 메서드 참조. 객체를 먼저 생성한다. 참조변수 :: 메서드 위의 케이스에 대해서는 예제를 통해서 살펴보도록 하겠습니다. Calculator라는 클래스에서 정적 / 인스턴스 메서드를 각각 선언하고 이를 .. 이전 1 ··· 4 5 6 7 8 9 10 ··· 18 다음