본문 바로가기

# 02

[윤성우 열혈자바] 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..
[윤성우 열혈자바] 20-4. Arrays 클래스 Arrays 클래스의 배열 복사 메소드 public static int[] copyOf (int[] original, int newLength) -> original에 전달된 배열을 첫 번째 요소부터 newLength의 길이만큼 복사 public static int[] copyOfRange(int[] original, int from, int to) -> original에 전달된 배열을 인덱스 from부터 to 이전 요소까지 복사 public static void arraycopy (Object src, int srcPos, Object dest, int destPos, int length) -> 배열 src의 srcPos에서 배열 dest의 destPos로 length 길이만큼 복사 copyOf 메소드..
[윤성우 열혈자바] 20-3. Math 클래스와 난수의 생성, 그리고 문자열 토큰의 구분 수학 관련 연산 기능을 제공하는 Math 클래스 public static void main(String[] args) { System.out.println( "원주율 : " + Math.PI);System.out.println( "2의 제곱근 : " + Math.sqrt(2) );System.out.println();System.out.println( "파이에 대한 Degree : " + Math.toDegrees(Math.PI) );System.out.println( "2 파이에 대한 Degree : " + Math.toDegrees(2.0 * Math.PI) );System.out.println(); double radian45 = Math.toRadians(45); // 라디안으로의 변환!Syste..