java 31

[Java 연습문제] Iterable과 Comparable * - Book 예제

"book.csv"을 읽어서 Book 객체로 변환한 후, 이를 LinkedList에 저장한다. Books 클래스는 Iterator 패턴을 통해 for-each문으로 쉽게 순회할 수 있다. 코드 book.csv더보기더보기더보기더보기더보기1|이노베이터|창의적인 삶으로 나아간 천재들의 비밀|월터 아이작슨|innovator.jpg|42000|초특급 베스트셀러 『스티브 잡스』에 이은 월터 아이작슨의 놀라운 역작!\r\n최초의 컴퓨터에서 트위터와 페이스북까지,\r\n디지털 혁명을 선도한 창의적인 천재들의 이야기\r\n\r\n국내에서만 70만 부가 판매된 세계적인 베스트셀러 『스티브 잡스』의 저자 월터 아이작슨이 10년을 준비한 역작, 『이노베이터』가 돌아왔다. 세상을 바꾸는 혁명을 일궈낸 창의적인 천재들의 이야기를..

[자료구조] Binary Search Tree (BST, 이진 탐색 트리)

Binary Search Tree (BST, 이진 탐색 트리)모든 node의 key는 유일한 key를 가진다.왼쪽 서브 트리 key들은 root의 key보다 작다.오른쪽 서브 트리의 key들은 root의 key보다 크다.왼쪽, 오른쪽 서브 트리 모두 binary search tree다.코드/* binary search tree */import java.util.*;class Node { int key; Node right; Node left; public Node() {} public Node(int key) { this.key = key; left = right = null; }}public class BinaryTree implements It..

자료구조 2024.09.07

[자료구조] Hash Table (해시 테이블)

Hash Table  Hash를 이용해 Key와 Value 쌍으로 이루어진 데이터를 저장하는 전통적 자료구조.Equality Selection 할 때, 가장 효율적인 자료구조.Java에서는 주로 Hash Map을 사용할 것. 코드/* HashTable.java */import java.util.Iterator;@SuppressWarnings("unchecked")public class HashTable implements Iterable>{ private Entry[] table; private int size; public static class Entry { final K key; // '키'는 유일해야 하기 때문에 V value; public E..

자료구조 2024.09.07

[자료구조] Queue(큐) with Java

Queue(큐)FIFO (First In First Out) 형태를 가지는 자료구조.데이터가 입력되는 순서대로 처리되어야 하는 상황에서 사용. 코드/* LinkedList로 구현한 Queue */import java.util.LinkedList;// Queue ADTpublic interface Queue { public void enqueue(E e); public E dequeue(); public int size();}class LinkedListQueue implements Queue { LinkedList queue; public LinkedListQueue() { this.queue = new LinkedList(); } public void ..

자료구조 2024.09.07

[Java] ArrayList

ArrayList연속적인 데이터의 리스트 (데이터는 연속적으로 들어 있어야 하고, 중간에 빈 공간이 있어서는 안됨)내부적으로 Object[] 배열을 이용하여 요소를 저장index를 사용하여 요소에 빠르게 접근일반적인 배열과는 달리, 가변적으로 공간을 늘이거나 줄인다.데이터가 중간에 삽입할 경우, 빈 공간이 생기지 않도록 요소들의 위치를 재정렬 해야함.read가 빠르지만, insert/delete가 느리다. (삽입, 삭제가 적고, 작은 데이터를 다룰 때 사용) 코드(1) List.java : List라면 갖춰야 할 ADT(객체에 대한 설계도)를 Interface로 구현. (Java에서 Interface를 ADT로 사용함)(2) ArrayList.java : 배열을 이용한 ArrayList 구현. (1) L..

자료구조 2024.09.02

[자료구조] 스택(Stack) with Java

Stack(스택) 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 및 Last in First Out(LIFO) 구조의 자료구조. Java에서 자료구조(알고리즘)를 만들 때, 해당 객체에 대한 설계도(ADT, Abstract Data Type)를 Interface로 구현한다.  코드(1) Stackable.java : Stack이라면 갖춰야 할 ADT(객체에 대한 설계도)를 Interface로 구현. (Java에서 Interface를 ADT로 사용함)(2) ArrayListStack.java : ArrayList를 이용한 Stack 구현. (1) Stackable.java/* Stackable.java */public interface Stackable { // access: isEmpty /..

자료구조 2024.09.02

[Java] 12. Lambda Expression(람다식)

Chapter 1:  Lambda Expression 개요Functional InterfaceAnonymous ClassLambda Expression 사용Chapter 2:  Lambda Expression 사용Lambda Expression 형식메소드 참조Chapter 3:  Lambda Expression 활용Chapter 1:  Lambda Expression 개요 Anonymous Method 형식으로 동작하는 Lambda Expression은 파라미터를 받아 짧은 코드 블록으로 수행하고 필요에 따라 값을 반환하는 표현 방법을 말한다. Functional Interface  -> 람다식, 메서드 참조로 사용 가능.하나의 abstract method를 가지고 있는 Interface(SAM(Sing..

Java 2024.09.01

[Java 연습 문제] String Sort (with Bubble Sort)

문제Generic을 이용하여 String을 정렬해라. 코드import java.util.*;public class StringBubbleSort {// interface인 Comparable을 extends 하는 이유: T는 Comparable인 타입이어야 한다!! // 그래서 Comparable을 extends(확장)한 타입이다 라는 의미다! public static > void bubbleSort(T[] array) { int n = array.length; for (int i=0; i 0) { T temp = array[j]; array[j] = array[j+1]; ..