본문 바로가기

전체 글

(193)
자바 중급2편 - 컬렉션 프레임워크 - 순회, 정렬, 전체 정리(2) 정렬2 - Comparable, Comparator 자바가 기본으로 제공하는 Integer, String 같은 객체를 제외하고 MyUser와 같이 직접 만든 객체를 정렬하려면 어떻게 해야 할까?이때는 Comparable 인터페이스를 구현하면 된다. 이 인터페이스는 객체에 비교 기능을 추가해준다. public interface Comparable { public int compareTo(T o);} 자기 자신과 인수로 넘어온 객체를 비교해서 반환하면 된다.현재 객체가 인수로 주어진 객체보다 더 작으면 음수두 객체의 크기가 같으면 0현재 객체가 인수로 주어진 객체보다 더 크면 양수 package collection.compare;import java.util.Comparator;public class My..
자바 중급2편 - 컬렉션 프레임워크 - 순회, 정렬, 전체 정리(1) 순회라는 단어는 여러 곳을 돌아다닌다는 뜻이다.자료 구조에 순회는 자료 구조에 들어있는 데이터를 차례대로 접근해서 처리하는 것을 순회라 한다. 예를 들어서 배열 리스트는 index를 size까지 차례로 증가하면서 순회해야 하고, 연결 리스트는 node.text를 사용해서 node의 끝이 null일 때 까지 순회해야 한다. 이렇듯 각 자료 구조의 순회 방법이 서로 다르다. 자료 구조의 구현과 관계 없이 모든 자료 구조를 동일한 방법으로 순회할 수 있는 일관성 있는 방법이 있다면, 자료 구조를 사용하는 개발자 입장에서 매우 편리할 것이다. 자바는 이런 문제를 해결하기 위해 Iterable과 Iterator 인터페이스를 제공한다. Iterable, IteratorIterable : "반복 가능한"이라는 뜻이다..
자바 중급2편 - 컬렉션 프레임워크 -스택,큐(1) 스택(Stack) 구조123 push()121321 pop()321 21 1 1(넣기) -> 2(넣기) -> 3(넣기) -> 3(빼기) -> 2(빼기) -> 1(빼기) 후입선출나중에 넣은 것이 가장 먼저 나오는 것을 후입선출이라 하고, 이런 자료구조를 스택이라 한다.스택에 값을 넣는 것을 push라 하고, 스택에서 값을 꺼내는 것을 pop이라 한다. package collection.deque;import java.util.Stack;public class StackMain { public static void main(String[] args) { Stack stack = new Stack(); stack.push(1); stack.push(2); ..
자바 중급2편 - 컬렉션 프레임워크 - Map(1) Map KeyValue학생190학생280학생380학생4100 Map은 키-값의 쌍을 저장하는 자료 구조이다.키는 맵 내에서 유일해야 한다. 그리고 키를 통해 값을 빠르게 검색할 수 있다.키는 중복될 수 없지만, 값은 중복될 수 있다.Map은 순서를 유지하지 않는다. 자바는 HashMap, TreeMap, LinkedHashMap 등 다양한 Map 구현체를 제공한다. 이들은 Map 인터페이스의 메서드를 구현한다. package collection.map;import java.util.Collection;import java.util.HashMap;import java.util.Map;import java.util.Set;public class MapMain1 { public static void..
자바 중급2편 - Set(2) package collection.set.javaset;import java.util.*;public class JavaSetMain { public static void main(String[] args) { run(new HashSet()); run(new LinkedHashSet()); run(new TreeSet()); } private static void run(Set set) { System.out.println("set = " + set.getClass()); set.add("C"); set.add("B"); set.add("A"); set.add("1"); se..
자바 중급2편 - Set(1) Collection 인터페이스 Collection 인터페이스는 java.util 패키지의 컬렉션 프레임워크의 핵심 인터페이스 중 하나이다.Collection 인터페이스는 List, Set, Queue와 같은 다양한 하위 인터페이스와 함께 사용되며, 이를 통해 데이터를 리스트, 세트, 큐 등의 형태로 관리할 수 있다. Set 인터페이스 자바의 Set 인터페이스는 java.util 패키지의 컬렉션 프레임워크에 속하는 인터페이스 중 하나이다. Set 인터페이스는 중복을 허용하지 않는 유일한 요소의 집합을 나타낸다. Set 인터페이스는 HashSet, LinkedHashSet, TreeSet 등의 여러 구현 클래스를 가지고 있으며, 각 클래스는 Set 인터페이스를 구현하며 각각의 특성을 가지고 있다. 1...
자바 중급2편 - 해시(Hash)(1) 리스트(List) vs 세트(Set) List(리스트)정의: 리스트는 요소들의 순차적인 컬렉션이다. 요소들은 특정 순서를 가지며, 같은 요소가 여러번 나타날 수 있다.특징순서 유지: 리스트에 추가된 요소는 특정한 순서를 유지한다. 이 순서는 요소가 추가된 순서를 반영할 수 있다.중복 허용: 리스트는 동일한 값이나 객체의 중복을 허용한다. 예를 들어 숫자나 문자열을 리스트 안에 여러번 저장할 수 있다.인덱스 접근: 리스트의 각 요소는 인덱스는 통해 접근할 수 있다. 용도: 순서가 중요하거나 중복된 요소를 허용해야 하는 경우에 주로 사용된다.Set(셋)정의: 세트(셋)는 유일한 요소들의 컬렉션이다. 특징유일성: 셋에는 중복된 요소가 존재하지 않는다. 셋에 요소를 추가할 때, 이미 존재하는 요소면 무시된다.순..
자바 중급2편 - List(2) 자바 리스트Collection 인터페이스Collection 인터페이스는 java.util 패키지의 컬렉션 프레임워크의 핵심 인터페이스중 하나이다. 이 인터페이스는 자바에서 다양한 컬렉션, 즉 데이터 그룹을 다루기 위한 메서드를 정의한다. Collection 인터페이스는 List, Set, Queue와 같은 다양한 하위 인터페이스와 함께 사용되며, 이를 통해 데이터를 리스트, 세트, 큐 등의 형태로 관리할 수 있다. List 인터페이스List 인터페이스는 java.util 패키지에 있는 컬렉션 프레임워크의 일부다. List는 객체들의 순서가 있는 컬렉션을 나타내며, 같은 객체의 중복 저장을 허용한다. 이 리스트는 배열과 비슷하지만, 크기가 동적으로 변화하는 컬렉션을 다룰 때 유연하게 사용할 수 있다. Li..