프로그래밍 언어

저번 글에서는 List.CopyOf에 대해서 다뤘는데요. 이전 글: https://zerotoinfinite.tistory.com/9 Java - List의 복사 (2): List.copyOf 리스트의 복사 두 번째인 List.copyOf에 대해 알아보자! 저번 글에서 Collections.unmodifiableList에 대해 다뤘으므로 이 글을 읽기 전에 먼저 읽으시면 이해가 잘 될 겁니다! 이전 글: https://zerotoinfinite.tisto zerotoinfinite.tistory.com 오늘은 리스트 내 원소(객체)들 까지 복사하여 새로운 리스트를 만드는 법에 대해 알아보겠습니다!! 방법만 아는 것은 의미가 없다고 생각합니다. 언제 어느 상황에 리스트 내 객체까지 복사해야하는지를 알아야됩..
리스트의 복사 두 번째인 List.copyOf에 대해 알아보자! 저번 글에서 Collections.unmodifiableList에 대해 다뤘으므로 이 글을 읽기 전에 먼저 읽으시면 이해가 잘 될 겁니다! 이전 글: https://zerotoinfinite.tistory.com/8 Java - List의 복사 (1): Collections.unmodifiableList 우아한 테크코스를 진행하면서 받았던 리뷰와 찾아서 공부했던 내용을 바탕으로 적었다. 공부하는 건 많아지는데 쉽게 까먹을까 봐 블로그에 쓰기로 다짐.. 총 3가지의 리스트 복사에 대해서 다 zerotoinfinite.tistory.com 리뷰어님의 리뷰를 받아 리팩토링을 한 나의 코드는 다음과 같았다. public List getCars() ..
우아한 테크코스를 진행하면서 받았던 리뷰와 찾아서 공부했던 내용을 바탕으로 적었다. 공부하는 건 많아지는데 쉽게 까먹을까 봐 블로그에 쓰기로 다짐.. 총 3가지의 리스트 복사에 대해서 다룰 것이다! Collections.unmodifiableList List.copyOf stream을 활용한 deepCopy 오늘은 첫번째로 Collections.unmodifiableList에 대해 다룰 것이다. 문제 상황 public List getCars() { return Collections.unmodifiableList(cars); } 처음 리뷰요청을 하였을 때 나의 코드는 위와 같았다. 사실 저렇게 쓴 이유는... 다들 저렇게 써서.. 였던 것 같다. 리뷰어님은 저 코드를 보고 이렇게 말씀하셨다. 내부의 car..
Java - Iterator 목차 Iterator 란? Iterator Method Iterator, get 시간 측정 1. Iterator 란? Iterator란 Collection에 저장된 데이터에 접근하는데 사용되는 인터페이스이다. 즉 List, Set, Map등과 같은 컬렉션의 데이터에 접근할 수 있다. 내부 구조가 다르지만 표준화된 인터페이스를 제공하면서 공통적으로 데이터에 접근할 수 있는 것이다. List list = new ArrayList(); Iterator iterator = list.iterator(); 2. Iterator Method hasNext() 다음 원소가 있으면 true, 없으면 false를 반환한다. 주로 while문과 함께 쓴다. (다음 원소가 있으면 로직 진행) Li..
Java - Collections Class 목차 Collections 사용 이유 Collections 기능 1. Collections 사용 이유 Collections는 static method를 가진 class이다. 인스턴스를 생성하지 않고도 method를 가져다 쓸 수 있다. List, Set, Map을 등을 다루는 method들이 정의 되어 있기 때문에 따로 직접 구현을 하지 않고 사용할 수 있다. 대표적으로 List를 정렬하는 method인 Collection.sort()가 있다. 즉 Collection Framework를 다룰 때 유용한 method를 제공한다. 2. Collections 기능 Collections Class에는 다양한 기능이 있지만 자주 쓰는 기능에 대해서 알아보도록 합시다!!..
Java - Map 목차 Map의 사용 이유 Map의 구현체 HashMap의 생성자 HashMap의 기능 1. Map의 사용 이유 Map은 형태로 데이터를 저장한다. 연관 있는 데이터 끼리 묶어서 저장하고 싶다면, Map을 고려할 만 하다. Key는 중복될 수 없지만 , Value는 중복될 수 있다. 2. Map의 구현체 HashMap 들어오는 데이터에 대한 hashCode를 기반으로 해시 값이 같은 값을 Entry 배열에 저장한다. 데이터를 정렬하지 않는다. TreeMap RedBlack Tree를 기반으로 데이터를 저장 및 관리한다. Key 값을 기준으로 정렬한다. 3. HashMap의 생성자 HashMap() 새로운 빈 HashMap을 생성한다. Capacity는 16, load factor는 0...
Java - Set 목차 Set 사용 이유 및 특징 Set의 구현체 HashSet 생성자 HashSet 기능 Hash 충돌 1. Set 사용 이유 및 특징 Set은 중복된 원소를 갖지 않는다는 특성이 있다. 특정한 순서를 가지고 있지 않다. 중복을 제거해야 하는 상황이라면 Set을 고려할 만 하다. 2. Set의 구현체 HashSet Set은 인터페이스 이므로 구현체인 HashSet을 통해 객체를 생성한다. Set set = new HashSet(); 이 외에도, LinkedHashSet, TreeSet 등 다양한 구현체가 있다. 3. HashSet 생성자 HashSet() 새로운 빈 Set을 생성한다. 내부적으로 HashMap을 쓰는데, capacity (16), load factor(0.75) 이다...
Java - 리스트(List) 목차 List 사용 이유 List의 구현체 ArrayList 생성자 ArrayList 기능 1. 배열이 아닌 List를 사용하는 이유 배열은 크기가 정해져 있지만 List는 크기를 마음대로 조절할 수 있다. 구현체 안에 다양한 method들을 사용할 수 있다. 2. List의 구현체 List는 인터페이스다. 즉, 인터페이스를 구현한 구현체가 필요하다. List의 구현체는 다음과 같다. ArrayList LinkedList 이 외에도 List의 구현체는 다양하다. 대표적으로 쓰이는 ArrayList를 알아보도록 하자. 3. ArrayList 생성자 (Constructor) ArrayList() List list = new ArrayList(); 기본적으로 capacity가 1..
zerotoinfinite
'프로그래밍 언어' 카테고리의 글 목록