목록분류 전체보기 (175)
가자미의 개발이야기
-함수형 인터페이스?(Functional Interface?) --추상메소드가 하나 있는 인터페이스 --람다식을 위한 전제 -매개변수가 있고 반환하지 않는 람다식 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 interface Printable{ void print(String s); } public class Ramda { public static void main(String[] args) { Printable p; //줄임없는 표현 p=(String s)->{System.out.println(s);}; //메소드 코드가 한줄 일때만 중괄호 생략 p=(String s)->System.out.println(s); //매개변수 형 생략 p=(s)->Sys..
개념 1. 포인터를 이용해서 물리적으로 떨어진 노드들을 논리적으로 연결. 2. 최대 원소 개수 지정 불필요. 3. 중간에 원소 추가 시 이동 연산 불필요. 4. 물리적으로 연결된 것이 아니기 때문에 탐색 연산 비용이 높음 헤더파일 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #ifndef _LINKEDLIST_ #define _LINKEDLIST_ typedef struct ListNodeType { int data; struct ListNodeType* pLink; }ListNode; typedef struct LinkedListType { int currentElementCount; ListNode h..
-익명클래스를 최대한 줄이는 것을 람다라고 생각해보자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 interface printable{ void print(); } //익명클래스의 경우. printable prn = new printable{ void print(){ System.out.println("내용출력~"); }; } //람다의 경우 printable prn = (s)->{System.out.println("내용출력~");}; //람다의 매개변수 전달 void printer(printable prn){}; void printer((s)->{System.out.println("내용출력~");}; Colored by Color Scripter cs 람다는 인터페..
-네스티드 클래스 : 클래스 안에 정의된 클래스 --static 여부에 따라 스태틱 네스티드 클래스/이너 클래스로 구분. ---이너 클래스도 멤버/로컬/익명 클래스로 구분 -스태틱 네스티드 클래스(Outer 클래스와 별 상관 없음) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 class Outer{ private static int num =0; //외부 접근이 불가능한 변수지만 nested1, nested2로는 접근 가능 static class Nested1{ void add(int n) {num+=n;} } static class Nested2{ int get() {return num;} } } public class StaticNested { public stat..
a. 애너테이션 소스코드에 대한 문서를 따로 만들지 않고 소스코드와 문서를 하나의 파일로 관리하기 위함 표준 애너테이션 애너테이션 설명 @Override 메서드가 오버라이딩하는 것이라 알림 @Deprecated 사용하지 않는 것을 권장하는 대상 @SuppressWarnings 특정 경고 메시지가 나타나지 않게 함 @SafeVarargs 제네릭 타입의 가변인자를 사용 @FunctionalInterface 함수형 인터페이스라는 것을 알림 @Native native메서드에서 참조되는 상수 앞에 붙임 @Target 애너테이션이 적용가능한 대상을 지정. (메타) @Documented 애너테이션 정보가 javadoc으로 작성된 문서에 포함되게함 (메타) @Inherited 애너테이션이 자손 클래스에 상속되도록 함 ..
-이전 방식의 열거형 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 interface Animal{ int DOG =1; int CAT =2; } interface Person{ int MAN =1; int WOMAN =2; } public class PastJava { public static void main(String[] args) { who(Person.MAN);//정상적 호출 who(Animal.DOG);//비정상적 호출 //두번째 오류가 컴파일 및 실행 과정에서 드러나지 않음!!! } public static void who(int man) { switch(man) { case Person.MAN: ..
1. 헤더파일(ArrayList.h) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 //전처리 지시자 #ifndef _ARRAYLIST_ #define _ARRAYLIST_ typedef struct ArrayListNodeType { int data; }ArrayListNode; typedef struct ArrayListType { int maxElementCount;//최대원소갯수 int currentElementCount;//현재 원소의 개수 ArrayListNode* pElement;//원소 저장을 위한 1차원 배열 }ArrayList; //함수 선언 ArrayList* ..
-정렬 --public static void sort(List list) ---Coparable을 구현하는 T를 가진 제네릭 메소드 1 2 3 4 5 6 7 8 9 10 11 12 13 import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.ArrayList; public class SortPractice { public static void main(String[] args) { List list = Arrays.asList("TOY","BOX","ROBOT"); list= new ArrayList(list); Collections.sort(list);//정렬 //public static ..
a. Map iterator 인터페이스를 구현하지 않음, 따라서 반복자를 활용하지 않음 하지만 Key는 Set로 구현되어 있어서 반복자를 얻어올 수 있다!! 즉 Key의 반복자로 접근해서 활용가능 Collection메소드는 중복되어 제외. 메서드 설명 boolean containsKey(Object key) key 객체와 일치하는 키값이 있으면 참 boolean containsValue(Object value) value 객체와 일치하는 밸류값이 있으면 참 Set entrySet() key value타입 Map을 entry 타입의 객체로 저장한 Set반환 Set keySet() 저장된 키들을 Set으로 반환 void putAll(Map t) t의 모든 key value객체를 추가한다 Collection ..
a. Set 중복 안되고 순서가 없는 집합 개념 메소드는 Collection 메소드와 동일 b. HashSet 순서 상관x, 중복 허용 안됨 중복요소 제거하고 싶으면 HashSet 순서를 유지하고 싶으면 LinkedHashSet #생성자 HashSet() 해쉬셋 객체생성 HashSet(Collection c) 주어진 컬렉션을 포함하는 해쉬셋 객체생성 HashSet(int initialCapacity) 초기 용량을 가진 해쉬셋을 생성 HashSet(int initialCapacity, float loadFactor) 초기 용량과 load factor를 지정하는 생성자 메소드는 Collection 메소드와 거의 동일 --Set를 구현하는 HashSet클래스의 예시 1 2 3 4 5 6 7 8 9 10 11 ..