반응형

자바/자바 입문 공부일지 56

자바 기초 공부 일지 46. 람다lambda

람다에 대한 이해를 위해 기본형과 익명 클래스 사용과 람다의 사용을 작성해볼게요. 기본 클래스 익명 클래스 람다 interface Printable { void print(String s); } class Printer implements Printable { public void print(String s) { System.out.println(s); } } class Lambda1 { public static void main(String[] args) { Printable prn = new Printer(); prn.print("What is Lambda?"); } } interface Printable { void print(String s); } class Lambda2 { public stat..

자바 기초 공부 일지 45. 네스티드 클래스, 스테틱 클래스, 이너 클래스

네스티드Nested ( nest, 둥지를 틀다. 새 둥지) 는 중첩을 의미합니다. 클래스 안에 들어있는 클래스를 네스티드 클래스라고 합니다. 네스티드 클래스 안에는 Static 클래스와 Non-Static 클래스가 있습니다. Static 클래스의 경우에는 정적 클래스 Static 클래스가 아닐 경우에는 Non-Static 네스티드 클래스 또는 이너 클래스라고 합니다. 이너 클래스는 다시 멤버 클래스, 로컬 클래스, 익명 클래스로 나뉘어집니다. - 멤버 클래스는 클래스 안에서 멤버 역할을 하는 클래스 - 로컬 클래스는 메소드 안에 만들어진 클래스 (메소드 안의 영역을 로컬이라고 합니다.) - 익명 클래스는 클래스를 일회성으로 재정의해서 사용하는 클래스 ● Static 네스티드 클래스 Static 네스티드 ..

자바 기초 공부 일지 44. 열거형

● 자료형의 부여를 돕는 열거형 enum Scale { // 열거 자료형 Scale 의 정의입니다. enm 은 열거형 키워드. 열거형 값 (Enumerated Values) DO, RE, MI, FA, SO, RA, TI } 스케일형 인스턴스의 도 데이터, 레 데이터... 이렇게 이름에 의미를 부여합니다. 아래는 열거형의 예제입니다. public static void main(String[] args) { Scale sc = Scale.DO; System.out.println(sc); switch(sc) { case DO: //Scale.

자바 기초 공부 일지 43. ArrayList 정렬하기, Comparable과 Comparator, Comparator<T>

공부 참고 자료 : 윤성우의 열혈 자바 프로그래밍 공부 자료집 https://hianna.tistory.com/569 [Java] ArrayList 정렬하기 (오름차순, 내림차순, 사용자 정의) Collections.sort() 오름차순으로 정렬하기 내림차순으로 정렬하기 대소문자 구분없이 정렬하기 List.sort() - Java 8 이후 오름차순으로 정렬하기 내림차순으로 정렬하기 대소문자 구분없이 정렬하기 사 hianna.tistory.com List를 구현한 컬렉션 클래스들은 저장된 인스턴스를 정렬된 상태로 유지하지 않습니다. 대신에 정렬을 해야 한다면 다음 메소드를 사용해서 정렬합니다. public static void sort(List list) sort는 Collections 클래스에 정의되어 ..

자바 기초 공부 일지 42. 컬렉션 클래스 (5) 맵HashMap<K, V>

맵HashMap은 두 개의 자료가 하나의 요소를 구성하는 특성을 지닙니다. 각 자료는 키key와 값value으로 구분됩니다. key는 실질적 데이터가 아니며, 실질적 데이터인 value를 찾기 위한 지표 역할을 합니다. key는 지표의 역할을 하기 때문에 중복이 되면 안 됩니다. 즉,키key의 중복은 불가능하지만 값value의 중복은 가능합니다. 맵HashMap은 key라는 지표가 있기 때문에 순서를 유지할 필요가 없으므로 배열 순서가 없습니다. 아래의 예제를 살펴볼게요. public static void main(String[] args) { HashMap map = new HashMap(); // Key-Value 기반 데이터 저장 map.put(45, "Brown"); // (key, value) ..

자바 기초 공부 일지 41. 컬렉션 프레임 워크 (4) Queue<E>

(4) Queue ● Queue 컬렉션 클래스를 구성하는 스택Stack과 큐Queue가 있습니다. 스택Stack은 같은 구조와 크기의 자료를 정해진 방향으로만 쌓을 수 있고, top으로 정한 곳으로만 자료를 꺼낼 수 있습니다. Last in First Out 큐Queue는 한 곳에서는 삽입 작업이, 한 곳에서는 삭제 작업이 양 쪽으로 이루어집니다. 삭제 연산만 수행되는 곳을 front 프론트, 삽입 연산만 이루어지는 곳을 리어 rear 라고 하며 각각의 연산작업만 수행합니다. 큐의 리어에서 이루어지는 삽입연산을 인큐enQueue, 프론트에서 이루어지는 삭제연산을 디큐deQueue 라고 합니다. First in First Out 덱Deque 은 구멍이 두 개 입니다. 그리고 두 개의 구멍이 모두 입구도 출..

자바 기초 공부 일지 40. 컬렉션 프레임 워크 (3) TreeSet<E>

3. TreeSet ▼ HashSet + 정렬입니다. Tree(트리) 자료 구조를 기반으로 하는 인스턴스에 대해서 정렬 상태를 유지하면서 인스턴스가 저장 됩니다. TreeSet은 정렬 알고리즘을 가지고 있는 구조 입니다. public static void main(String[] args) { TreeSet tree = new TreeSet(); tree.add(3); tree.add(1); tree.add(2); tree.add(4); System.out.println("인스턴스 수: " + tree.size()); Tree 라고 하는 자료 구조는 비선형적인 자료 구조 입니다. 즉, 출발점을 기준으로 뻗어나가는 형태의 자료 구조예요. 예를 들어 가계도(족보)를 생각하시면 좋을 것 같아요. 트리 구조는 ..

자바 기초 공부 일지 39. 컬렉션 프레임 워크 (2) Set<E>

(2) Set Set 은 수학의 집합을 코드적으로 표현한 것입니다. Set은 배열이 없으므로 저장 순서가 유지되지 않고, 데이터의 중복 저장이 허용되지 않습니다. public static void main(String[] args) { Set set = new HashSet(); set.add("Toy"); set.add("Box"); set.add("Robot"); set.add("Box"); System.out.println("인스턴스 수: " + set.size()); 상기 코드를 실행할 경우 인스턴스의 수는 3 개가 표시 됩니다. 이유는 중복되는 Box 의 경우 중복이 되므로 저장되지 않기 때문입니다. 또한 순서대로 표시되지 않고 올림차순으로 abcd... 출력 됩니다. (저장 순서가 유지되지 않..

자바 기초 공부 일지 38. 컬렉션 프레임 워크 (1) Lise<E> 인터페이스

자료 구조란 IT학문 분야 중 하나입니다. 프로그램을 짜다보면 데이터가 많아지는데 어떻게 하면 효율적으로 관리할 수 있을지에 대한 구조의 연구예요. 자료 구조를 인터페이스 구조로 정리를 해놓는데, 그 구조의 집합을 컬렉션 프레임 워크라고 합니다. 즉, 컬렉션 프레임 워크는 자바에서 자료구조를 정의해 표준 인터페이스 형태로 제공하는 것입니다. 컬렉션 프레임 워크 골격에 해당하는 인터페이스들은 다음과 같습니다. 자료 구조 및 알고리즘을 구현해 놓은 일종의 라이브러리이고, 제네릭을 기반으로 구현이 되어 있습니다. 각 인터페이스를 하나씩 살펴볼게요. 1. Lise 인터페이스 데이터를 일렬로 보관합니다. 마치 배열과도 같이요. 리스트에 대한 특징을 알아볼게요. - 선형적인 자료구조입니다. (일렬로 데이터를 보관)..

자바 기초 공부 일지 37. 제네릭generic 메소드

▼ 제네릭 메소드 클래스 전부가 아닌 메소드 하나에 대해 제네릭을 정의합니다. 메소드의 선언부에 타입 변수를 사용한 메소드를 의미하며, 메소드 선언부에서 반환 타입 바로 앞에 위치합니다. public static void sort( ... ) { ... } class BoxFactory { public static Box makeBox(T o) { Box box = new Box(); // 상자를 생성하고, box.set(o); // 전달된 인스턴스를 상자에 담아서, return box; // 상자를 반환한다. } } Box sBox = BoxFactory.makeBox("Sweet"); Box dBox = BoxFactory.makeBox(7.59); // 7.59에 대해 오토 박싱 진행됨 Box sB..

반응형