Language

Language/Java

[Java] 열거형 클래스, Enum

JDK 1.5 부터 도입된 'Enum'은 클래스의 일종으로, 열거형 클래스라고도 불린다. Enumeration(셈, 계산, 열거)이라는 단어의 앞부분을 따서 만들어졌으며, Enum 클래스에 상수를 선언할 수 있고 선언된 상수는 수정이 불가능하다. Enum 선언 Enum은 클래스 외부에도 선언할 수 있고, 클래스 내부에도 선언할 수 있다. 선언 할 때의 방법은 접근제어자 enum "enum클래스 명" 으로 선언하면 된다. 이후 내부에 상수를 선언하는데 상수명을 대문자로 사용하는 것이 관례이며, 콤마 , 로 연결하여 상수를 선언하면 된다. 클래스 내부 public class Cafe { public enum Coffee { // Enum 클래스 선언 AMERICANO, CAPPUCCINO, CAFELATTE..

Language/Java

[Java] 배열에서 ArrayList로, ArrayList에서 배열로 변환하기

자바에는 Collection 인터페이스를 구현하는 List, Set, Queue 계열의 자료 구조가 있다. 이 객체들을 배열로 만들거나, 배열의 데이터를 Collection 자료구조로 변환해야될 상황이 있다. 그 방법에 대해서 알아보자. 배열 -> ArrayList 먼저 ArrayList의 생성자를 살펴 볼 필요가 있다. 두 번째 생성자를 보면, 매개변수로 받은 컬렉션 데이터 목록으로 ArrayList 객체를 생성한다는 것을 알 수 있다. 그렇다면 배열을 컬렉션 자료구조로 바꾸는 방법은 무엇일까? Arrays 클래스의 정적 메소드인 Arrays.asList() 를 사용하면 된다. Array.asList() 메소드는 배열을 List 형으로 반환한다. (Arrays.asList()로 생성된 객체는 데이터 추..

Language/Summary

Data Structure#2 - Set, Linked List

ㆍSet - Collection 인터페이스를 확장하는 Set은 어떤 값이 존재하는지, 아닌지 여부를 따질때 유용하다. - Set의 자료구조는 기본적으로 순서를 따지지 않으며 중복을 허용하지 않는다. HashSet : 순서가 필요없는 데이터를 해시 테이블에 저장한다. 별도의 정렬 작업이 없으며, Set 인터페이스를 구현한 클래스 중 가장 성능이 좋다. TreeSet: 저장한 데이터의 값에 따라 정렬된다. red-black이라는 트리 타입으로 값이 저장되며, HashSet보다 약간 느리다. LinkedHashSet: 연결된 목록 타입으로 구현된 해시 테이블에 데이터를 저장한다. 저장된 순서에 따라 값이 정렬된다. HashSet, TreeSet 보다 더 느리다. ㆍHashSet - Object -> Abstr..

Language/Java

[Java] 자바 인터페이스(interface), 추상 메소드

자바의 인터페이스는 객체 지향의 핵심 개념인 추상화를 가장 잘 나타내는 개념이다. 설계시 인터페이스를 먼저 작성하면 어떠한 메소드를 구현해야 하는지, 매개 변수의 이름을 어떻게 할지를 일일이 고민하지 않아도 된다. 따라서, 어느정도 정형화된 개발이 가능해진다. 그리고 인터페이스와 같이 구현의 성질을 가지는 추상 메소드도 함께 활용한다면 선언과 구현을 구분하여 개발할 수 있다. 또한, 구체 클래스가 아니라 인터페이스의 개념인 추상화에 의존하게 함으로써 여러가지 이점을 얻을 수 있다. 인터페이스(Interface) 인터페이스 선언 방법 인터페이스의 선언 방법은 다음과 같다. public interface 인터페이스명{ } 다음과 같이 public interface "인터페이스명"으로 선언하면 된다. 인터페이..

Language/Summary

Data Structure#1 - ArrayList

ㆍ자바의 자료구조 - 자바에서의 데이터를 담는 자료 구조를 크게 나누어보면 이렇다. 순서가 있는 목록(List) 형 순서가 중요하지 않은 셋(Set) 형 먼저 들어온 것이 먼저 나가는 큐(Queue) 형 키-값(key-value)로 저장되는 맵(Map) 형 - List, Set, Queue는 'Collection' 인터페이스를 확장하고 있다. - Collection 인터페이스는 Iterable라는 인터페이스를 확장했다. (Iterable 인터페이스를 사용하여 데이터를 순차적으로 가져올 수 있다) - Collection 인터페이스에 선언된 주요 메소드 목록은 다음 오라클 공식문서에서 확인하자. https://docs.oracle.com/javase/8/docs/api/ Java Platform SE 8 d..

Language/Java

[Java] 자바의 객체 비교 메소드 equals 그리고 hashcode (eclipse 메소드 자동 완성)

기본 자료형(byte, int, float, boolean 등)은 "==" 만으로 값이 같은지 확인할 수 있다. 하지만 객체는 == 연산자 만으로 두 객체가 같은지 판단할 수 없다. 객체에 "==" 를 사용할경우, 값이 아닌 주소값을 비교하기 때문이다. equals() - 동등성 비교 후 boolean 값 (true | false)를 반환 (기본 - 주소 비교) hashCode() - 객체의 고유 값(int)을 반환 (기본 - heap에 저장된 객체의 메모리 주소 값) == 연산자 - 기본 자료형의 '값'을 비교하기위해 사용 equals()메소드의 필요성 자바에서 정수 값을 비교하기 위한 연산자는 == 이다. int a = 7; int b = 7; if(a == b) { System.out.println..

KAispread
'Language' 카테고리의 글 목록 (3 Page)