Iterator(단방향), ListIterator(양방향), Enumeration(구버전) 컬렉션에 저장된 데이터를 접근하는데 사용되는 인터페이스 Iterator 컬렉션 종류(List, Set)에 상관없이 저장된 요소들을 읽어오는 방법을 표준화 한것. Map은 Collection의 자손이 아니라서 iterator가 없다. 메서드 hasNext() : 읽어올 요소가 남아있는지 확인, 있으면 true next() : 다음 요소를 읽어온다. pervious() : 이전 요소를 읽어온다. (ListIterator에만 구현) 코드예제 List list = new ArrayList(); Iterator it = list.iterator(); while(it.hasNext()){ System.out.println(i..

Stack 특징 LIFO(Last In First Out) 구조, 저장(push), 추출(pop) 구현 ArrayList로 구현하는 것이 적합 활용 수식계산, 수식괄호검사, 워드프로세서의 undo/redo, 웹브라우저의 뒤로/앞으로 Queue 특징 FIFO(First In First Out) 구조, 저장(offer), 추출(poll) 구현 LinkedList로 구현하는것이 적합 interface로 정의됨 -> 객체 생성 불가 : Queue 직접구현, 구현된 클래스 사용 ex) 직접구현 : Queue q = new Queue(){}; 구현된 클래스 사용 : Queue q = new LinkedList(); 활용 최근사용문서, 인쇄작업 대기목록, 버퍼(buffer)
ArrayList 특징 기본 Vector개선 한것, 배열기반으로 데이터 저장, 순서와 중복 O, 객체만 저장가능 메서드 추가 add -> autoboxing에 의해 자동으로 참조형 형변환 addAll 삭제 remove removeAll clear : 모든 객체 삭제 검색 indexOf lastIndexOf contains : 해당(or 모든) 요소가 포함하는지 확인 get 변경 set 그 외 subList : 일부의 새로운 list 생성 toArray : ArrayList의 객체배열을 반환 isEmpty : 비어있는지 확인 trimToSize : 빈공간 제거 size : 저장된 객체의 갯수 LinkedList 배열의 장단점 장점 : 구조가 간단, 데이터 읽는데 걸리는 시간이 짧음, 순차적 데이터 추가,삭..
컬렉션(collection) : 여러 객체(데이터)를 모아 놓은 것을 의미 프레임웍(framework) : 표준화, 정형화된 체계적인 프로그래밍 방식 ex) spring 라이브러리 : 정보, 책, 오디오 라이브러리 등 -> 기능만 제공 컬렉션 프레임웍 : 컬렉션(다수의 객체)을 다루기 위한 표준화된 프로그래밍 방식, java.util패키지에 포함, jdk1.2부터 제공 컬렉션 클래스(collection class) : 다수의 데이터를 저장할 수 있느 클래스 ex) Vector, ArrayList, HashSet 컬렉션 프레임웍의 핵심 인터페이스 List : 순서O, 중복O ex) 대기자 명단 구현 클래스 : ArrayList, LinkedList, Stack, Vector Set : 순서X, 중복X ex..
DecimalFormat 숫자 형식화 숫자 -> 형식 문자열 : format() 형식 문자열 -> 숫자 : parse() cf) Intger.parseInt() 같은 메서드들은 ","(쉼표)가 있는 문자열을 숫자로 변환할수 없음 -> DecimalFormat 사용 double number = 1234567.89; DecimalFormat df = new DecimalFormat("#.#E0"); String result = df.format(number); // result = "1.2E6" DecimalFormat df = new DecimalFormat("#,###.##"); Number num = df.parse("1,234,567.89"); // num = "1234567.89" SimpleDat..
객체지향 언어의 주요 특징 코드의 재사용성이 높다. 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. 코드의 관리가 용이하다. 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 신뢰성이 높은 프로그래밍을 가능하게 한다. 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다. 클래스와 객체 클래스의 정의 클래스란 객체를 정의 해 놓은 것 클래스의 용도 클래스는 객체를 생성하는데 사용 객체의 정의 실제로 존재하는 것 객체의 용도 객체가 가지고 있는 기능과 속성에 따라 다름 // 클래스 class Tv{ // 변수(속성) String color; // 색깔 boolean powe..
애플리케이션이 시작될 때, 어떤 클래스가 최초 한 번만 메모리를 할당(static)하고 해당 메모리에 인스턴스를 만들어 사용하는 패턴 즉, 싱글톤 패턴은 '하나'의 인스턴스만 생성하여 사용하는 디자인 패턴이다. 자바에선 생성자를 private로 선언해서 생성 불가하게 하고 getInstance() 메서드를 통해 받아서 사용한다. 장점 고정된 메모리 영역을 얻으면서 한번의 new로 인스턴스를 사용하기 때문에 메모리 낭비를 방지할 수 있다. 싱글톤으로 만들어진 클래스의 인스턴스는 전역 인스턴스이기 때문에 다른 클래스의 인스턴스들이 데이터를 공유하기 쉽다. DBCP(DataBase Connection Pool)처럼 공통된 객체를 여러개 생성해서 사용해야하는 상황에서 많이 사용한다. 인스턴스가 절대적으로 한개만..
배열이란? "배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것" 배열의 생성 > 타입[] 변수이름; // 배열을 선언(배열을 다루기 위한 참조변수 선언) > 변수이름 = new 타입[길이]; // 배열을 생성(실제 저장공간을 생성)배열의 인덱스 생성된 배열의 각 저장공간을 '배열의 요소(element)'라고 하며, '배열이름[인덱스]'의 형식으로 배열의 요소에 접근한다. 인덱스(index)는 배열의 요소마다 붙여진 일련번호로 각 요소를 구별하는데 사용된다. "인덱스(index)의 범위는 0부터 '배열길이-1'까지." 배열의 길이 int[] arr = new int[5]; // 길이가 5인 int배열 int tmp = arr.length; // arr.l..