728x90
반응형
SMALL

JAVA의 가장 기본이 되는 내용 42

컬렉션 프레임워크 - 정렬 (Comparable, Comparator)

참고자료: 김영한의 실전 자바 - 중급 2편 | 김영한 - 인프런김영한 | 자바 제네릭과 컬렉션 프레임워크를 실무 중심으로 깊이있게 학습합니다. 자료 구조에 대한 기본기도 함께 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전www.inflearn.com 정렬자료 구조에 저장된 데이터를 정렬하는 방법을 알아보자.바로 예제를 살펴보자. SortMain1package org.example.collection.compare;import java.util.Arrays;import java.util.Comparator;public class SortMain1 { public static void main(String[] args) { Integer[] array = {..

컬렉션 프레임워크 - 순회 (Iterable, Iterator)

참고자료: 김영한의 실전 자바 - 중급 2편 | 김영한 - 인프런김영한 | 자바 제네릭과 컬렉션 프레임워크를 실무 중심으로 깊이있게 학습합니다. 자료 구조에 대한 기본기도 함께 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전www.inflearn.com 순회우선, Iterable, Iterator를 다루기 앞서 자료 구조를 순회한다는 것에 대해 이해해보자.순회라는 것은 여러 곳을 돌아다닌다는 뜻이다. 자료 구조에서 순회는 자료 구조에 들어있는 데이터를 차례대로 접근해서 처리하는 것을 순회라고 한다. 그런데 다양한 자료구조가 있고, 각각의 자료 구조마다 데이터를 접근하는 방법이 전부 다르다. 예를 들어보자.배열의 경우 index를 size까지 차례대로 증가하면서 순회해야 하고,..

컬렉션 프레임워크 - Deque (Stack, Queue)

참고자료: 김영한의 실전 자바 - 중급 2편 | 김영한 - 인프런김영한 | 자바 제네릭과 컬렉션 프레임워크를 실무 중심으로 깊이있게 학습합니다. 자료 구조에 대한 기본기도 함께 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전www.inflearn.com 이제 Deque라는 자료구조를 알아보자. 왜 Stack, Queue를 Deque로 사용할 수 있을까? 우선, Deque는 "Double Ended Queue"의 약자로 이름에서 알 수 있듯 양쪽 끝에서 요소를 추가하거나 제거할 수 있다. 그래서 큐와 스택의 기능을 모두 포함하고 있어 매우 유연한 자료구조이다. 보통 '덱'이라고 많이 불린다. Deque의 구조 Queue에서는 전통적으로 넣을 때 `offer` 라는 단어를 사용하..

컬렉션 프레임워크 - Map

참고자료: 김영한의 실전 자바 - 중급 2편 | 김영한 - 인프런김영한 | 자바 제네릭과 컬렉션 프레임워크를 실무 중심으로 깊이있게 학습합니다. 자료 구조에 대한 기본기도 함께 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전www.inflearn.com MapMap은 키-값 쌍을 저장하는 자료구조이다. 여기서 특징이 있다.`키`는 맵 내에서 유일해야 한다. 그리고 키를 통해 값을 빠르게 검색할 수 있다.`키`는 중복될 수 없지만 `값`은 중복될 수 있다.Map은 순서를 유지하지 않는다. 키는 맵 내에서 유일하다는 것은 중복이 불가능하단 얘기고 이 말이 꼭 Set과 유사하다. 맞다. Map의 키는 Set으로 이루어져 있다. 그래서 Map의 모든 키 목록을 조회하는 keySet(..

컬렉션 프레임워크 - Set 직접 구현해보기 (hash, hashCode()에 대해)

참고자료: 김영한의 실전 자바 - 중급 2편 | 김영한 - 인프런김영한 | 자바 제네릭과 컬렉션 프레임워크를 실무 중심으로 깊이있게 학습합니다. 자료 구조에 대한 기본기도 함께 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전www.inflearn.com Set을 직접 구현해 보기 전 먼저 List와 Set은 어떤 차이가 있는지 알아보자.List순서가 보장된다. 넣는 순서대로 저장된다.중복을 허용한다.Set순서가 보장되지 않는다.중복을 허용하지 않는다.Set은 중복된 값을 방지할 수 있는 좋은 자료구조이다. 그리고 해당 값이 있는지 빠르게 찾아낼 수 있는 방법을 가지고 있다.어떻게 중복을 방지하고 값의 존재 유무를 빠르게 알아낼 수 있는지 직접 구현해 보면서 알아보자. 우선 가..

컬렉션 프레임워크 - List 인터페이스

참고자료: 김영한의 실전 자바 - 중급 2편 | 김영한 - 인프런김영한 | 자바 제네릭과 컬렉션 프레임워크를 실무 중심으로 깊이있게 학습합니다. 자료 구조에 대한 기본기도 함께 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전www.inflearn.com ArrayList, LinkedList를 직접 구현해봤더니 공통적으로 사용되는 메서드가 있고 이를 추상화한게 List라는 인터페이스라는 것을 깨달았다. 그래서 항상 사용하길 다음과 같이 사용했구나를 알게됐다.List list = new ArrayList(); 한번 List도 직접 인터페이스를 만들고 지금까지 만든 ArrayList, LinkedList를 구현체로 변경해보자. MyListpackage org.example.col..

컬렉션 프레임워크 - LinkedList 직접 구현해보기

참고자료: 김영한의 실전 자바 - 중급 2편 | 김영한 - 인프런김영한 | 자바 제네릭과 컬렉션 프레임워크를 실무 중심으로 깊이있게 학습합니다. 자료 구조에 대한 기본기도 함께 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전www.inflearn.com 이전 포스팅에서 ArrayList를 직접 구현해봤다. 이 ArrayList는 내부에서 배열을 가지고 사용하는 자료구조이다. ArrayList를 사용해서 얻는 장점은 다음과 같다.조회가 순식간이라는 것. 인덱스를 통해 바로 그 값을 알아낼 수 있다. 조회는 O(1)의 시간복잡도를 가진다.그냥 배열만 사용하면 사이즈가 꽉 차면 더이상 자료를 담을 수 없지만 ArrayList를 사용해서 사이즈가 꽉차면 더 큰 사이즈를 가지는 새로운..

컬렉션 프레임워크 - ArrayList 직접 구현해보기

참고자료: 김영한의 실전 자바 - 중급 2편 | 김영한 - 인프런김영한 | 자바 제네릭과 컬렉션 프레임워크를 실무 중심으로 깊이있게 학습합니다. 자료 구조에 대한 기본기도 함께 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전www.inflearn.com지금까지 그저 사용하기만 했던 ArrayList를 직접 구현해 보고 어떤 원리로 동작하는지 자세히 이해해 보자.단계별로 밟아나가면서 점차 완성시켜 보자. ArrayList는 본인의 데이터를 결국 배열이라는 자료 구조로 관리하고 사용한다. 그래서 말 그대로 'Array'List이다. CustomArrayListpackage org.example.collection.array;public class CustomArrayList { ..

제네릭

참고자료: 김영한의 실전 자바 - 중급 2편 | 김영한 - 인프런김영한 | 자바 제네릭과 컬렉션 프레임워크를 실무 중심으로 깊이있게 학습합니다. 자료 구조에 대한 기본기도 함께 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전www.inflearn.com 제네릭은 왜 필요한지부터 들어가보자. 다음과 같은 코드가 있다고 가정해보자. IntegerBoxpackage org.example.generic;public class IntegerBox { private Integer value; public void set(Integer value) { this.value = value; } public Integer get() { return..

예외 처리 3 (예외 처리 도입)

참고자료: 김영한의 실전 자바 - 중급 1편 | 김영한 - 인프런 김영한 | 실무에 필요한 자바의 다양한 중급 기능을 예제 코드로 깊이있게 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문법을 www.inflearn.com 예외 처리 1 에서 다룬 프로그램에서 이런 문제가 있었다. 정상 흐름과 예외 흐름이 섞여 있기 때문에 코드를 한눈에 이해하기 어렵다. 쉽게 이야기해서 가장 중요한 정상 흐름이 한눈에 들어오지 않는다. 심지어 예외 흐름이 더 많은 코드 분량을 차지한다. 이 문제를 점진적으로 해결해보자. NetworkClientExceptionV2 package exception.ex2; public class NetworkClientE..

728x90
반응형
LIST