JAVA
-
[JAVA] Generics 정의 및 타입변수, 다형성JAVA 2022. 8. 23. 11:43
Generics란 무엇인가? 컴파일 시 타입을 체크해주는 기능을 말하며 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄일 수 있다. 실행시 에러가 발생하는 것을 컴파일 에러로 만들어 준다. JDK 1.5 이후 Generics를 꼭 사용해주는 것이 좋다. ArrayList tvList = new ArrayList(); tvList.add(new Tv()); // ok tvList.add(new Audio()); // Error! Tv 타입의 객체만 저장할 수 있는 ArrayList타입의 참조변수 tvList가 만들어졌다. 예제 ArrayList list = new ArrayList(); list.add(10); list.add(20); list.add("30"); Integer i = (Integer)..
-
Java 객체지향 공부 다형성, interface, 상속, 포함 등JAVA 2022. 8. 22. 19:09
Java에서 가장 중요한 개념인 객체지향에 대해 공부한 자료입니다. 객체지향 개념 코드의 재사용성을 높이고 코드의 관리를 수월하게 하며 신뢰성이 높은 프로그램의 개발을 가능하게 만들어준다. 클래스와 객체의 정의 클래스란 객체를 정의해 놓은 것을 말한다. 객체란 실제로 존재하는 개념이다. 객체는 인스턴스를 포함하는 일반적인 의미이다. 인스턴스화란 클래스로부터 인스턴스를 생성하는 것을 말한다. 객체의 구성 요소 객체에는 속성(변수)과 기능(메서드)으로 이루어져 있다. 객체에 있는 속성과 기능을 객체의 멤버라고 부른다. 인스턴스 생성과 사용 인스턴스를 생성하는 방법은 일반적으로 "클래스명 참조 변수명 = new 클래스명()"이다. Tv t; // 객체를 다루기 위한 참조변수를 선언 Tv t = new Tv()..
-
[JAVA] Map 관련 내용JAVA 2022. 8. 19. 15:42
HashMap과 Hashtable은 Map 인터페이스를 구현한 대표 클래스이고 데이터를 키와 값 쌍으로 저장한다. HashMap(신버전)은 동기화 x, Hashtable(구버전)은 동기화 o Map은 데이터의 순서가 없으며, 키의 중복은 허용하지 않고 값의 중복은 허용한다. HashMap 순서가 없는 Map에서 순서를 유지하려면 LinkedHashMap 클래스를 사용하면 된다. 해싱(hashing) 기법으로 데이터를 저장(put)하며 데이터가 많아도 검색 속도가 빠르다. hashing이란? 해시 함수를 이용해서 해시 테이블에 데이터를 저장하고 읽어온다. 해시 테이블은 배열(접근성)과 LinkedList(변경 유리)가 조합된 상태이다. 더보기 TreeMap 범위 검색과 정렬에 유리한 컬렉션 클래스이며 Ha..
-
[JAVA] TreeSetJAVA 2022. 8. 19. 10:48
TreeSet은 이진 탐색 트리(binary search tree)로 구현되어있으며, 범위 탐색과 정렬에 유리합니다. 이진 트리의 경우 한개의 노드가 최대 2개의 하위 노드를 갖게 됩니다. TreeSet의 기본형태 및 특징 부모를 기준으로 작은 값은 왼쪽에 큰 값은 오른쪽에 저장된다. 데이터가 많아 질수록 비교 횟수가 증가하기 때문에 추가, 삭제에 효율성이 떨어진다. class TreeNode{ TreeNode left; // 왼쪽 자식 노드 Object element; // 저장할 객체 TreeNode right; // 오른쪽 자식 노드 } 데이터의 저장 boolean add(Object o) equals()와 hashCode()를 자동으로 호출한다. Set은 중복을 허용하지 않는다. TreeSet의 ..
-
[JAVA] HashSetJAVA 2022. 8. 18. 12:10
HashSet은 Set인터페이스를 구현한 대표 클래스이며 순서를 유지하지 않는 데이터의 집합이고 데이터의 중복을 허용하지 않는다. 순서를 유지하고 싶다면 LinkedHashSet을 사용하면 된다. HashSet의 주요 Method 생성자 HashSet() : 기본 생성자 HashSet(Collection c) : Collection(c)을 저장하는 생성자 HashSet(int initialCapacity) : 초기 용량(initialCapacity) 설정 생성자 용량이 모자라면 내부적으로 초기 용량의 x2만큼 늘린다. HashSet(int initialCapacity, float loadFactor) : 용량을 x2 하는 시점(loadFactor)을 지정해준다. 예: loadFactor가 0.8일 경우 ..
-
[JAVA] Iterator Method 관련 내용JAVA 2022. 8. 18. 09:30
컬렉션에 저장된 데이터를 접근하는 데 사용되는 인터페이스를 의미합니다. ListIterator(양방향)은 Iterator(단방향)의 접근성을 향상한 것이다. Iterator Method boolean hasNext() : 읽어 올 요소가 남아 있는지 확인 ( 있다면 true, 없다면 false) Object next() : 다음 요소를 읽어온다. hasNext()로 요소가 있는지 확인하고 next()를 사용하는 게 안정적이다. void remove() : 요소를 삭제한다. next() 호출 후 remove()를 호출해야 한다. void forEachRemaining(Consumer
-
[JAVA] Collection Framework 정리JAVA 2022. 8. 17. 16:55
컬렉션(Collection)이란? 여러 객체를 모아 놓은 것을 의미합니다. 프레임웍(Framework)이란? 표준화, 정형화된 체계적인 프로그래밍 방식을 말합니다. 컬렉션 프레임웍(Collection Framework) 컬렉션을 다루기 위한 표준화된 프로그래밍 방식 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스(Collection Class) 제공 저장, 삭제, 검색, 정렬 등등 Collection Class에는 Vector, ArrayList, HashSet 등이 있다. java.util 패키지에 포함되어 있다. (JDK 1.2부터 제공) Collection Framework의 핵심 인터페이스 List와 Set은 Collection 인터페이스의 자식 인터페이스이다. List 순서가 있는 데이터의 ..
-
[Java1000제] 콘솔 만들기 - 남궁성의 초보 코드 스터디JAVA 2022. 8. 12. 15:46
남궁성의 코드초보스터디(자바 java... : 네이버 카페 전문가가 지도하는 스터디카페에요. 프로그래밍언어(자바 java, C언어)를 제대로 배우고픈 분들 오세요. cafe.naver.com 1단계 더보기 [문제1] 에제를 실행하면 '>>'와 같은 프롬프트가 나타나서 사용자의 입력을 기다리고, 사용자가 입력한 내용을 화면에 출력한다. 만일 사용자가 'q' 또는 'Q'를 입력하면 프로그램을 종료한다. 다음의 예제를 완성하세요. [예제ConsoleEx1.java] import java.util.*; class ConsoleEx1 { public static void main(String[] args) { while(true) { String prompt = ">>"; System.out.print(promp..