본문 바로가기

프로그래밍 언어/Java 프로그래밍17

컬렉션 프레임워크(6) Map 인터페이스 컬렉션 프레임워크(Collection Framework) Map 컬렉션 Map 인터페이스 키(Key)와 값(Value)의 쌍으로 이루어진 데이터의 집합 키와 값은 모두 객체 키는 중복될 수 없지만 값은 중복 저장 가능 기존에 저장된 데이터와 중복된 키 값을 저장하면, 기존의 값은 없어지고 마지막에 저장된 값이 남음(덮어씀) 구현 클래스: HashMap, Hashtable, LinkedHashMap, Porperties, TreeMap 일반적으로 키 타입은 String을 주로 사용 HashMap을 생성하기 위해서는 key 타입과 value 타입 매개변수로 주고 기본 생성자 호출 기본 형식 Map map = new HashMap(); HashMap 예제 HashMapEx.java package map; im.. 2021. 11. 30.
컬렉션 프레임워크(5) Set 인터페이스 - HashSet 컬렉션 프레임워크(Collection Framework) Set 컬렉션 Set 인터페이스 수학의 집합에 비유 저장 순서가 유지되지 않음 객체 중복 저장 불가 구현 클래스: HashSet, LinkedHashSet, TreeSet 전체 클래스를 대상으로 한 번씩 반복해 가져오는 반복자(Iterator) 제공 인덱스로 객체를 검색해서 가져오는 메소드 없음 get() 메소드 없음 HashSet 예제 HashSetEx.java package set; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class HashSetEx { public static void main(String[] args) { Set set.. 2021. 11. 30.
컬렉션 프레임워크(4) List 인터페이스- Vector 컬렉션 프레임워크(Collection Framework) Vector(벡터) ArrayList와 동일한 내부 구조 스레드 동기화(synchronization) 되어 있기 때문에 복수의 스레드가 동시에 Vector에 접근해 객체를 추가, 삭제하더라도 스레드에 안전 Vector 예제 Vector를 이용해서 Board 객체 추가, 삭제, 검색 Board.java package list; public class Board { String subject; String content; String writer; public Board(String subject, String content, String writer) { this.subject = subject; this.content = content; this... 2021. 11. 30.
컬렉션 프레임워크(3) List 인터페이스 - LinkedList 컬렉션 프레임워크(Collection Framework) LinkedList List 구현 클래스이므로 ArrayList와 사용 방법은 동일 내부 구조가 다르다 ArrayList: 배열로 만들어져 있어서 인덱스 사용 LinkedList: 인접 참조를 링크해서 체인처럼 관리 (이전/다음 객체의 주소 갖고 있음) 특정 인덱스에서 객체를 제거하거나 추가하게 되면 바로 앞뒤 링크만 변경 빈번한 객체 삭제와 삽입이 일어나는 곳에는 ArrayList보다 성능 좋음 순차적으로 추가/삭제 할 경우 ArrayList가 LInkedList보다 빠름 ArrayList가 용량이 충분하면 더 빠르지만 충분하지 않으면 새로운 크기의 ArrrayList를 생성하고 데이터를 복사하는 일이 발생하기 때문에 순차적으로 데이터를 추가해도.. 2021. 11. 30.
컬렉션 프레임워크(2) List 인터페이스- ArrayList 연습문제 ArrayList 연습문제 -1 4개의 단어를 입력받고 가장 긴 단어와 단어의 길이를 출력하는 프로그램 작성 ArrayListTest1.java package list; import java.util.ArrayList; import java.util.Scanner; public class ArrayListTest1 { public static void main(String[] args) { ArrayList a = new ArrayList(); Scanner scanner = new Scanner(System.in); for (int i = 0; i < 4; i++) { System.out.print("단어 입력: : "); String s = scanner.next(); a.add(s); } Syste.. 2021. 11. 30.
컬렉션 프레임워크(1) List 인터페이스- ArrayList 컬렉션 프레임워크(Collection Framework) 컬렉션(Collection) 사전적 의미로 요소(객체)를 수집해 저장한 것 프레임워크(Framework) = 라이브러리(기능) + 프로그래밍 방식 표준화, 정형화된 체계적인 프로그래밍 방식 미리 정해진 방식대로 프로그램을 작성 누가 작성하든 프로그램이 표준화되기 때문에 프로그램 유지보수하기 쉬워짐 컬렉션 프레임워크(Collection Framework) 컬렉션(다수의 객체)를 다루기 위한 표준화된 프로그래밍 양식 많은 양의 데이터를 저장, 삭제, 검색, 비교, 정렬 작업 등을 편리하게 쉽게 수행 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 제공되는 컬렉션 라이브러리 인터페이스를 통해서 정형화된 방법으로 다양한 컬렉션 클래스 이용 인터페이스와.. 2021. 11. 30.
Generic(제네릭) 제네릭(Generic) 클래스(인터페이스)나 메서드를 타입 파라미터를 이용하여 선언하는 기법 pubilc class 클래스명 {....} public interface 인터페이스명 {...} classGen { private T value; } 클래스 설계 시에 타입 는 아직 결정되지 않음 ㅗㅁ든 종류의 타입을 다룰 수 있음 선언 시 클래스 또는 인터페이스 이름 뒤에 을 붙임 (다이아몬드 연산자 ) 사이에 타입 파라미터 위치: 타입 파라미터 일반적으로 대문자 알파벳 한 문자로 표현 E : Element T: Type V: Value K: Ket 개발 코드에서는 타입 파라미터 자리에 구체적인 타입을 지정해야 함 Gen gen = new Gen(); Gen gen = new Gen(); 클래스 .. 2021. 11. 29.
Java Day10 - 컬렉션 프레임워크(ArrayList, HashMap, ...) 컬렉션 프레임워크(Collection Framework) ArrayList LinkedList Stack & Queue HashMap & Hashtable TreeMap 자료 타입 자바에서 추가적으로 제공되는 자료 타입 자료구조의 한 종류 쉽게 쓰기 위해서 미리 클래스가 정의 리스트 List 인터페이스를 구현한 클래스들 ArrayList, LinkedList 선형 자료구조의 한 종류 배열의 크기는 고정되어 있음. 그것을 가변적으로 하기 위해 ArrayList package Standard_Java; import java.util.ArrayList; public class ArrayList01 { public static void main( String [] args ) { // 객체 생성 ArrayLis.. 2021. 11. 13.
Java Day9 - 패키지와 예외처리, 쓰레드 패키지와 예외처리 패키지 자바의 클래스들을 모아 놓은 폴더 폴더의 경로를 표현할 때 사용하는 구분자 윈도우즈: \, 맥, 리눅스: / 자바에서는 패키지의 경로를 표현할 때 . 을 사용 패키지 주의 사항 모든 클래스는 반드시 하나의 패키지에 포함 하나의 소스파일(.java)에는 첫 번째 문장으로 단 한 번의 패키지 선언 가능 패키지란? 동일한 특징을 갖는 열개의 클래스를 하나의 폴더로 관리하는 방법 Brids.java package StartJava.animal.birds; public class Birds { public static void main(String[] args) { } } Ground.java package StartJava.animal.ground; public class Ground .. 2021. 11. 11.