분류 전체보기 (329) 썸네일형 리스트형 [Java 복습] 직접 구현해보는 Set (feat. 해시 알고리즘) 목차List, Set의 차이점Set 구현 시작데이터 추가 시 개선 사항해시 알고리즘해시 충돌해시 충돌 구현 리스트(List) vs 세트(Set) 자료 구조에서의 List와 Set은 각각 특정한 방식으로 데이터를 저장하고 관리하는 데 사용된다. 리스트(List)정의: 리스트는 요소들의 순차적인 컬렉션이다. 요소들은 특정 순서를 가지며, 같은 요소가 여러 번 나타날 수 있다. 특징:순서 유지: 리스트에 추가된 요소는 특정한 순서를 유지한다. 이 순서는 요소가 추가된 순서를 반영할 수 있다. 중복 허용: 리스트는 동일한 값이나 객체의 중복을 허용한다. 예를 들어, 같은 숫자나 문자열을 리스트 안에 여러번 저장할 수 있다. 인덱스 접근: 리스트의 각 요소는 인덱스를 통해 접근할 수 있다. 이 인덱스는 보통 0부.. [Java 복습] 자바 리스트의 모든 것 목차자바 리스트Collection 인터페이스List 인터페이스ArrayListLinkedListList 성능 비교 자바 리스트 List 자료 구조 순서가 있고, 중복을 허용하는 자료 구조를 리스트라 한다. 자바의 컬렉션 프레임워크가 제공하는 가장 대표적인 자료구조가 바로 리스트이다. 리스트와 관련된 컬렉션 프레임워크는 다음 구조를 가진다. Collection 인터페이스 Collection 인터페이스는 java.util 패키지의 컬렉션 프레임워크의 핵심 인터페이스 중 하나이다. 이 인터페이스는 자바에서 다양한 컬렉션, 즉 데이터 그룹을 다루기 위한 메서드를 정의한다. Collection 인터페이스는 List , Set , Queue 와 같은 다양한 하위 인터페이스와 함께 사용되며,이를 통해 데이터를 리.. [Java 복습] 직접 적용해보는 List 인터페이스 (feat. 연결 리스트 vs 배열 리스트) 목차 인터페이스 도입의존성 주입컴파일 타임, 런타임 의존관계리스트 성능 비교 리스트 추상화 - 인터페이스 도입다형성과 OCP 원칙을 가장 잘 활용할 수 있는 곳 중에 하나가 바로 자료 구조이다. 자료 구조에 다형성과 OCP 원칙이 어떻게 적용되는지 알아보자. List 자료 구조 순서가 있고, 중복을 허용하는 자료 구조를 리스트( List )라 한다. 우리가 지금까지 만든 MyArrayList 와 MyLinkedList 는 내부 구현만 다를 뿐 같은 기능을 제공하는 리스트이다. 물론 내부 구현이 다르기 때문에 상황에 따라 성능은 달라질 수 있다. 핵심은 사용자 입장에서 보면 같은 기능을 제공한다는 것이다. 이 둘의 공통 기능을 인터페이스로 뽑아서 추상화하면 다형성을 활용한 다양한 이득을 얻을 수 있다 .. [Java 복습] 직접 구현해보는 LinkedList 목차연결 리스트 구현해보기특정 위치 추가, 삭제 메서드 추가배열 리스트 VS 연결 리스트제네릭 도입 연결 리스트 구현해보기public class Node { Object item; Node next; public Node(Object item) { this.item = item; }public class MyLinkedListV1 { private Node first; // 첫 노드의 위치를 가리킨다. private int size = 0; public void add(Object e) { Node newNode = new Node(e); if (first == null) { first = newNode; .. [Java 복습] 노드란? 노드 연결, 기능구현 해보기 배열 리스트의 단점배열 리스트는 내부에 배열을 사용해서 데이터를 보관하고 관리한다.이로 인해 다음과 같은 단점을 가진다.배열의 사용하지 않는 공간 낭비배열의 중간에 데이터 추가 노드와 연결낭비되는 메모리 없이 딱 필요한 만큼만 메모리를 확보해서 사용하고, 또 앞이나 중간에 데이터를 추가하거나 삭제할 때도 효율적인 자료 구조가 있는데, 바로 노드를 만들고 각 노드를 서로 연결하는 방식이다. 노드 클래스public class Node { Object item; Node next;}노드 클래스는 내부에 저장할 데이터인 item 과, 다음으로 연결할 노드의 참조인 next 를 가진다.이 노드 클래스를 사용해서 데이터 A, B, C를 순서대로 연결해보자.public class Node { Obje.. [Java 복습] 직접 구현해보는 ArrayList 자료 구조배열과 같이 여러 데이터(자료)를 구조화해서 다루는 것을 자료구조라 한다.자바는 배열 뿐만 아니라, 컬렉션 프레임워크라는 이름으로 다양한 자료 구조를 제공하고 있다. 배열의 특징배열에서 자료를 찾을 때 인덱스(index)를 사용하면 매우 빠르게 자료를 찾을 수 있다.인덱스를 통한 입력, 변경, 조회의 경우 한번의 계산으로 자료의 위치를 찾을 수 있다.배열은 메모리상에 순서대로 붙어서 존재한다. 공식: 배열의 시작 참조 + (자료의 크기 * 인덱스 위치)arr[0]: x100 + (4byte * 0): x100arr[1]: x100 + (4byte * 1): x104arr[2]: x100 + (4byte * 2): x108배열의 경우 인덱스를 사용하면 한번의 계산으로 매우 효율적으로 자료의 위치.. [Java 복습] 와일드 카드 목차와일드 카드와일드 카드 실행순서제네릭 메서드 vs 와일드 카드상한, 하한 제한타입 이레이저 와일드 카드이번에는 제네릭 타입을 조금 더 편리하게 사용할 수 있는 와일드 카드(wildcard)에 대해 알아보자. 참고로 와일드카드라는 뜻은 컴퓨터 프로그래밍에서 * , ? 와 같이 하나 이상의 문자들을 상징하는 특수 문자를 뜻한다. 쉽게 이야기해서 여러 타입이 들어올 수 있다는 뜻이다.public class Box { private T value; public void set(T value) { this.value = value; } public T get() { return value; }}public class WildcardEx { static.. [Java 복습] 제네릭 메서드 목차제네릭 메서드제네릭 메서드 활용제네릭 타입과 제네릭 메서드 우선순위 이번에는 특정 메서드에 제네릭을 적용하는 제네릭 메서드에 대해 알아보자!제네릭 타입과 지금부터 살펴볼 제네릭 메서드는 둘다 제네릭을 사용하긴 하지만 서로 다른 기능을 제공한다.public class GenericMethod { public static Object objMethod(Object obj) { System.out.println("Object Print = " + obj); return obj; } public static T genericMethod(T t) { System.out.println("generic Print = " + t); return t;.. [Java 복습] 타입 매개변수 제한 목차요구사항에 맞는 코드다형성 시도제네릭 도입과 실패타입 매개변수 제한 public class Animal { private String name =""; private int size; public Animal(String name, int size) { this.name = name; this.size = size; } public String getName() { return name; } public int getSize() { return size; } public void sound() { System.out.println("동물 울음 소리."); } @Override .. [Java 복습] 제네릭이 필요한 이유!! 목차제네릭이 필요한 이유제네릭 적용제네릭 용어와 관례원시 타입제네릭 활용 예제 public class IntegerBox { private Integer value; public void set(Integer value) { this.value = value; } public Integer get() { return value; }}public class StringBox { private String value; public void set(String value) { this.value = value; } public String get() { return value; }}public class.. 이전 1 ··· 19 20 21 22 23 24 25 ··· 33 다음