본문 바로가기

# 02/Java

[윤성우 열혈자바] 23-5. Map<E> 인터페이스를 구현하는 컬렉션 클래스들 Key-Value 방식의 데이터 저장과 HashMap 클래스 public static void main(String[] args) {HashMap map = new HashMap(); // Key-Value 기반 데이터 저장map.put(45, "Brown");map.put(37, "James");map.put(23, "Martin"); // 데이터 탐색System.out.println("23번 : " + map.get(23));System.out.println("37번 : " + map.get(37));System.out.println("45번 : " + map.get(45)); // 데이터 삭제map.remove(37); // 데이터 삭제 확인System.out.println("37번 : " + ma..
[윤성우 열혈자바] 23-4. Queue<E> 인터페이스를 구현하는 컬렉션 클래스들 큐 인터페이스 Queue 인터페이스의 메소드들 boolean add(E e) 넣기E remove() 꺼내기E element() 확인하기 boolean offer(E e) 넣기, 넣을 공간이 부족하면 false 반환E poll() 꺼내기, 꺼낼 대상 없으면 null 반환E peek() 확인하기, 확인할 대상이 없으면 null 큐의 구현 public static void main(String[] args) {Queue que = new LinkedList(); // LinkedList 인스턴스 생성!que.offer("Box");que.offer("Toy");que.offer("Robot"); LinkedList는 List와 동시에 Queue를 구현하는 컬렉션 클래스이다.따라서 어떠한 타입의 참조변수로 참조..
[윤성우 열혈자바] 23-3. Set<E> 인터페이스를 구현하는 컬렉션 클래스들 Set을 구현하는 클래스의 특성과 HashSet 클래스 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()); // 반복자를 이용한 전체 출력for (Iterator itr = set.iterator(); itr.hasNext(); )System.out.print(itr.next() + '\t');System.out..
[윤성우 열혈자바] 23-2. List<E> 인터페이스를 구현하는 컬렉션 클래스들 List 인터페이스 List 인터페이스를 구현하는 대표적인 컬렉션 클래스 둘은 다음과 같다.ArrayList 배열 기반 자료구조, 배열을 이용하여 인스턴스 저장LinkedList 리스트 기반 자료구조, 리스트를 이용하여 인스턴스 저장 List 인터페이스를 구현하는 컬렉션 클래스들의 공통 특성인스턴스의 저장 순서 유지동일 인스턴스의 중복 저장을 허용한다. 배열 기반의 장단점 배열은 크기가 고정되어 있어서 만약 원소를 추가하고 싶으면 사이즈가 큰 배열을 새로 만들고 기존의 배열의 원소를 차례대로 옮겨준 다음 원소를 추가해줘야 함! 기존 배열 삭제도 해야됨!리스트는 그냥 추가하면 됨 단순저장은 배열은 그냥 저장하면 되지만 리스트는 선으로 연결 해줘야 되서 더 느림! ArrayList 클래스 public sta..
[윤성우 열혈자바] 23-1. 컬렉션 프레임워크의 이해 컬렉션 프레임워크 자료구조 및 알고리즘을 구현해 놓은 일종의 라이브러리! 제네릭 기반으로 구현이 되어 있다.
[윤성우 열혈자바] 22-1. 제네릭의 심화 문법 제네릭 클래스와 상속 class Box {protected T ob;public void set(T o) { ob = o; }public T get() { return ob; }} class SteelBox extends Box {public SteelBox(T o) { // 제네릭 클래스의 생성자ob = o;}} Box iBox = new SteelBox(7959); Box iBox = new SteelBox(7959); Box sBox = new SteelBox("Simple"); Box sBox = new SteelBox("Simple"); 타겟 타입 class Box {private T ob;public void set(T o) { ob = o; }public T get() { return ob;..
[윤성우 열혈자바] 21-2. 제네릭의 기본 문법 다중 매개변수 기반 제네릭 클래스의 정의 class DBox {private L left; // 왼쪽 수납 공간private R right; // 오른쪽 수납 공간 public void set(L o, R r) {left = o;right = r;} @Overridepublic String toString() {return left + " & " + right;}} public static void main(String[] args) { DBox box = new DBox();box.set("Apple", 25);System.out.println(box); } 타입 매개변수의 이름 규칙 일반적인 관례 한 문자로 이름을 짓는다.대문자로 이름을 짓는다. 보편적인 선택 E ElementK KeyN Number..
[윤성우 열혈자바] 21-1. 제네릭의 이해 제네릭 이전의 코드 class Apple {public String toString() { return "I am an apple."; }} class Orange {public String toString() { return "I am an orange."; }} // 다음 상자는 사과도 오렌지도 담을 수 있다.class Box { // 무엇이든 저장하고 꺼낼 수 있는 상자private Object ob; public void set(Object o) { ob = o; }public Object get() { return ob; }} 제네릭 이전의 코드의 사용의 예 public static void main(String[] args) {Box aBox = new Box(); // 상자 생성Box oBo..