List 계열 컬렉션- 선형구조로 이루어진 컬렉션 구조(순서에 의미가 있음)- ArrayList- LinkedList- Vector ArrayList https://sas-study.tistory.com/73 = 0; i--) {aList.remove(i);}end = System.currentTimeMillis();System.out.printf("작업 소요시간 : %ds\n", end - begin);begin = System.currentTimeMillis();// 직업for (int i = lList.size()-1; i >= 0; i--) {lList.remove(i);}end = System.currentTimeMillis();System.out.printf("작업 소요시간 : %ds\n", ..
컬렉션의 종류와 인터페이스이전 컬렉션1. ArrayList : 순차배열2. HashMap : 연관배열3. Stack : 스택배열4. Queue : 큐배열.- 자바는 모든 컬렉션이 특정 인터페이스를 구현한다. 1. Collection 인터페이스 - List 와 Set의 부모 역할 2. List 인터페이스 - 순서가 있는 데이터 집합 - 방번호가 있다. 첨자. 인덱스. -> 방번호를 이용하여 요소 접근. - 데이터 중복을 허용한다. ex) ArrayList , Stack , Queue, LinkedList, Vector 3. Set 인터페이스 - 순서가 없는 데이터 집합 - 방번호가 없다(첨자가 없다.) - 데이터 중복을 허용 안한다.************** - 순서가 중요하지 않은 데이터 집합. ex) ..
Stack, Queue Stack 스택- 자료구조 중 하나- 후입선출- LIFO( Last In First Out ) 0. 객체 생성Stack stack = new Stack(); 1. 요소삽입stack.push("빨강");stack.push("파랑");stack.push("노랑"); 2. 요소 제거- 값 반환과 동시에 요소를 제거- 반환은 가장 나중에 넣은 "노랑" 부터...System.out.println(stack.pop()); //노랑System.out.println(stack.size()); // 2System.out.println(stack.pop()); // 파랑System.out.println(stack.size()); // 1System.out.println(stack.pop()); //..
ArrayList와 HashMap의 비교 1. ArrayList - 요소에 대한 접근 : index사용 - 요소에 순서가 존재 - 첨자 : 정수사용.(0부터 시작, Zero-based Index) - 스칼라 배열(Scalar Array) (HashMap과의 비교) : 방들을 일괄 접근하기 용이(***)- for문 : 요소간의 구분이 쉽지 않다.(3번째 방? 27번째 방?) 2. HashMap - 요소 접근 -> 키(key)사용 - 키 : 숫자, 문자, 문자열(***이것만쓴다거의***) 등... - 방번호(인덱스) X,- 요소에 순서도 없음. -연관 배열, 사전구조 -Key, Value (ArrayList와의 비교) : 일괄 접근이 불리(거의 사용 안함)- for문과 잘 연동 안함- 요소 하나하나를 직접 ..
컬렉션, Collection - 배열의 업그레이드 버전 - 길이 가변(늘이거나 줄이는게 가능) - 배열을 사용 목적에 따라 사용법이나 구조를 특화시켜서 제공함.(=자료구조) 기존의 순수 배열방식 배열 생성. - 타입명시(int) - 길이 명시([3])int[] nums1 = new int[3];초기화 or 요소접근 -> 인덱스 사용nums1[0]=100;nums1[1]=200;nums1[2]=300;배열의 길이 or 탐색for( int i =0; i
예외, Exception - 컴파일 발견 X 런타임발견 O - 실행중 발생하는 에러 - 개발자가 예측을 할수도 없을수도 있다. -> 예측을 하더라도 발생할 수 있는 에러. - 주로 발생하는 경우 : 프로그램 외부와의 소통을 하는 업무(파일 입출력, DB입출력, 네트워크 입출력 등...) 예외처리, Exception Handling 1. 전통적인 방식. (*조건문*) 2. 특화된 구문. (**try-catch(finally)문**) 전통적인 방식( 하드코딩의 하드코딩의 하드코딩 ) 사용자로부터 숫자1개 입력받기. > 업무진행.int num = 0; // 0이 아닐때만 일을 한다.if (num != 0) { // 업무 코드, *비즈니스코드*System.out.printf("100 / %d = %d\n", n..
Wrapper클래스int -> Integerbyte -> Byteboolean -> Boolean 이런애들...//같은 취급int n1=10;//값형Integer n2=new Integer(20);//참조형System.out.println(n1+20);System.out.println(n2+20); // 결과 같음. System.out.println(Integer.MAX_VALUE); -> 2147483647System.out.println(Integer.MIN_VALUE); -> -2147483648 //두 값의 우위 비교*********Integer.compare(10, 5) - 앞의 수가 크면 1Integer.compare(5,10) - 앞에수가 작으면 -1Integer.compare(10, 10)..
제네릭(Generic)- Java5부터 제네릭타입이 새로 추가.- 제네릭을 이용함으로써 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거할 수 있다.- 컬렉션(***), 람다식, 스트림, NIO에서 널리 사용되므로 확실히 이해해두어야 한다.- API 도큐먼트에보면 제네릭 표현이 많기 때문에 제네릭을 이해하지 못하면 API 도큐먼트를 정확히 이해할 수 없다.- 메소드를 정의할 때 타입을 파라미터로 사용할 수 있도록 한다.ex) 제네릭 클래스class Wrapper{private T data;public Wrapper(T data) {this.setData(data);} public T getData() {return data;} public void setData(T data) {this.data..