Java 34

HashSet

HashSet HashSet은 Set인터페이스를 구현한 가장 대표적인 컬렉션이다. 다시 상기하자면, Set은 중복 허용 X 순차 저장 X 중복된 데이터를 저장하려고 하면 false를 반환한다. HashSet의 특징을 이용하면 중복을 쉽게 제거할 수 있다. HashSet의 메서드 method 설명 HashSet() (생성자)객체 생성 HashSet(Collection c) 지정한 컬렉션을 포함하는 객체 생성 HashSet(int initialCapacity) 지정한 값을 초기용량으로 하는 객체 생성 HashSet(int initialCapacity, float loadFactor) 초기 용량과 load factor를 지정하는 생성자 boolean add(Object o) 객체 저장 boolean addAl..

Java 2020.09.09

Comparable & Comparator

public interface Comparator { int compare(Object o1, Object o2); } public interface Comparable { public int CompareTo(Object o); } Comparable 기본 정렬 기준을 구현할 때 사용한다. Comparator 기본 정렬 기준 외, 다른 기준으로 정렬할 때 사용한다. package com.javaex.ch11; import java.util.Arrays; import java.util.Comparator; public class ComparatorEx { public static void main(String[] args) { String[] strArr = {"cat", "Dog", "lion", "t..

Java 2020.09.09

Arrays

Arrays 배열을 다루기 편한 static메서드를 제공한다. 배열의 출력 toString() static String toString(boolean[] a) static String toString(byte[] a) static String toString(char[] a) ... ... static String toString(Object[] a) println메서드처럼 모든 타입을 출력할 수 있게 오버로딩 되어 있다. 배열 복사 copyOf() 배열 전체를 복사한다. copyOfRange() 배열 일부를 복사한다. int[] arr = {0,1,2,3,4}; int[] arr2 = Arrays.copyOf(arr, arr.length); //0,1,2,34 int[] arr3 = Arrays.cop..

Java 2020.09.09

List

ArrayList ArrayList는 컬렉션 프레임워크에서 가장 많이 사용하는 클래스다. Object를 이용해 순차적으로 데이터를 저장한다. 저장 공간이 없으면 동적으로 크기가 늘어난다. 새로운 배열을 만들어서 기존의 배열을 복사해 다시 저장한다. public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, java.io.Serializable { ... transient Object[] elementData; //Object배열 ... } ArrayList의 소스 일부다. elementData라는 이름의 Object[]를 멤버 변수로 선언해놨다. 따라서 ArrayList는 모든 타입의 객체를 담을 수 있다. A..

Java 2020.09.09

Stack & Queue

📚 자바의 정석을 정리한 내용입니다. 출처 : https://gohighbrow.com/stacks-and-queues/ 스택은 마지막에 저장한 데이터를 가장 먼저 꺼내는 Last in first out(LIFO)구조. 큐는 처음 저장한 데이터를 가장 먼저 꺼내는 First in first out(FIFO)구조다. 참고로 Stack은 클래스, Queue는 인터페이스다. Stack의 메서드 method 설명 boolean empty() Stack이 비었는지 확인 Object peek() Stack 맨 위에 저장된 객체를 반환 pop과 달리 꺼내는 것은 아님 비어 있다면 EmptyStackException Oject pop() 맨 위에 저장된 객체를 꺼낸다. 비었다면 역시 EmptyStackExcption ..

Java 2020.09.09

Collections Framework - 핵심 인터페이스

📚 자바의 정석을 정리한 내용입니다. Collections Framework는 다수의 데이터를 다루는 데 필요한 다양한 클래스를 제공한다. 핵심 인터페이스 상속계층도 이미지 출처 : http://dinfree.com/lecture/language/112_java_6.html interface 특징 구현 클래스 List 순서가 있는 데이터 집합. 중복 허용 ArrayList, LinkedList, Stack, Vector 등 Set 순서를 유지하지 않는 데이터 집합. 중복 없음. HashSet, TreeSet Map key, value 쌍(pair)으로 이루어진 데이터 집합. 순서 유지 안 됨. key는 중복 안 됨. HashMap, TreeMap, Hashtable, Properties 컬렉션 프레임워크..

Java 2020.09.09

내부 클래스inner class

📚 자바의 정석을 정리한 내용입니다. 내부클래스의 종류 내부 클래스는 단순히 클래스 내에 선언된 클래스다. 내부 클래스의 장점 1.내부 클래스에서 외브 클래스 멤버에 쉽게 접근 가능 2.코드 복잡성을 줄인다(캡슐화) 위 다이어그램에서 보다시피 내부 클래스는 클래스의 멤버처럼 다룬다. 다른 점은 익명 클래스Anonymous class가 있다. 내부클래스의 제어자, 접근성 자바의 정석 예제에 간단히 주석을 달았습니다. class Outer { class InstanceInner { int iv = 100; } static class StaticInner { int iv = 200; static int cv = 300; } void myMethod() { class LocalInner { int iv = 40..

Java 2020.09.09

추상클래스 & 인터페이스

이미지 출처 : https://learn-tech-tips.blogspot.com/2016/07/object-oriented-programming-abstract-class-vs-interface.html 추상 클래스abstract class 추상 클래스란? 미완성 클래스 즉, 완성되지 않은 abstract 메서드를 포함하고 있는 클래스라는 뜻이다. 추상 메서드abstract method 메서드는 선언부와 구현부로 나눈다. 선언부만 있고 구현부는 작성하지 않은 메서드를 추상 메서드라고 부른다. 추상 클래스를 상속받는 자손 클래스는 부모 클래스가 가진 모든 추상 메서드를 구현해야만 한다. 추상 클래스는 해당 클래스를 상속 받을 자손들이 사용하는 공통 부분을 뽑아내서 정의한다. 추상 클래스를 사용하는 이유는..

Java 2020.09.09

다형성Polymorphism

📚 자바의 정석을 정리한 내용입니다. 다형성? 운전하는 법은 한 번만 배우면 어떤 자동차든 운전할 수 있다. 자동차 브랜드나 내부 구현에 따라 달라지지 않는다. 동일한 인터페이스를 가지고 있기 때문이다. 이게 다형성이다. OOP에서 다형성이란 여러가지 형태를 가질 수 있는 능력. 말하자면 조상클래스 타입의 참조변수로 자손 클래스의 인스턴스를 참조할 수 있는 것이다. class Tv { boolean power; int channel; void power{ power = !power;} void channelUp() { ++channel;} void channelDown() { --channel;} } class CaptionTv extends Tv { String text; void caption() {..

Java 2020.09.06

상속Inheritance

📚 자바의 정석을 정리한 내용입니다. 상속Inheritance 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 코드를 공통적으로 관리할 수 있기 때문에 유지보수 하기 쉽다. class Child extends Parent { //... } extends만으로 간단하게 상속 받을 수 있다. 상속해주는 클래스Parent를 조상 클래스, 상속을 받는 클래스Child를 자손 클래스라고 한다. 이 두 관계를 상속관계라고 부른다. 출처 : https://www.javatpoint.com/inheritance-in-java 조상클래스는 자손 클래스가 변경 되어도 영향을 받지 않지만, 조상클래스가 변경되면 자손 클래스는 영향을 받는다. 자손 클래스는 조상 클래스의 모든 멤버를 상속 받는다. 따라서 항상 조..

Java 2020.09.06