본문 바로가기

분류 전체보기128

컬렉션 프레임워크(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.
자료구조 - 연결리스트(1) 연결 리스트 자료구조(Data Structure) 자료구조 종류 순차 리스트 배열 / 행렬 / 레코드 스택 / 큐 / 데크 연결 리스트 단일 연결 리스트 원형 연결 리스트 이중 연결 리스트 트리 일반 트리 이진트리 선형 리스트 각 데이터가 배열과 같이 연속되는 기억 장소에 순차적으로 저장되는 자료 구조 1차원 배열과 비슷한 구조이지만, 원소의 개수가 유동적 원소를 나열한 순서가 원소들의 순서가 됨 원소들의 논리적인 순서와 메모리에 저장하는 물리적인 순서가 같은 구조로 되어 있음 순차 자료구조에는 원소들이 순서대로 연속 저장되어 있기 때문에 시작 위치와 원소의 길이를 알면 특정 원소의 위치를 알 수 있음 리스트에서 처리할 수 있는 연산 길이: 리스트의 길이를 구하는 연산 접근: 리스트의 내용을 조사하거나 변경하기 위해.. 2021. 11. 29.
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.
자료구조 - 순차리스트(2) 큐(Queue), 데크(Deque) 자료구조(Data Structure) 자료구조 종류 순차 리스트 배열 / 행렬 / 레코드 스택 / 큐 / 데크 연결 리스트 단일 연결 리스트 원형 연결 리스트 이중 연결 리스트 트리 일반 트리 이진트리 순차 리스트 각 자료가 메모리 중에서 서로 이웃해 있는 구조 선형 구조라고도 함 메모리에 연속적으로 저장 종류 배열 / 행렬 / 레코드 스택 / 큐 / 데크 큐 (Queue) 선형 리스트 구조의 특별한 형태 기억 장소의 한쪽 끝에서 데이터의 입력이 이루어지고, 다른 한쪽 끝에서 출력이 이루어지는 형태 먼저 삽입한 데이터가 먼저 삭제되는 구조를 가짐 FIFO(First-In First-Out) / 선입선출의 형태 전위 포인터(front) 데이터가 삭제되는 끝을 가리키는 포인터 후위 포인터(rear) 데이터가.. 2021. 11. 29.