728x90
728x90
Java2023. 3. 28. 06:33싱글톤(Singleton) 패턴

싱글톤 패턴이란? 클래스의 인스턴스가 오직 1개만 생성되는 디자인 패턴이다. public class SingletonPattern { private static SingletonPattern instance = new SingletonPattern(); //생성자는 private private SingletonPattern() { } public static SingletonPattern getInstance() { return instance; } public void what() { System.out.println("싱글톤패턴"); } public static void main(String[] args) { SingletonPattern s1 = SingletonPattern.getInstance(..

Java2022. 12. 25. 12:27Iterator

[ Iterator ] 컬렉션 프레임워크(Collection Framework)에서 값을 가져오거나 삭제할 때 사용한다 [ 장단점 ] 모든 컬렉션 프레임워크에서 공통으로 사용이 가능하다 3개의 메서드만 알면 되어서 쉽게 값을 가져오고 제거할 수 있다 처음부터 끝까지의 단방향 반복만 가능하다 값을 변경하거나 추가하는 것이 불가능하다 대량의 데이터를 제어할 때 속도가 느리다 [ 메서드 ] Iterator.hasNext() : 다음 값이 들었는지 확인 후 true / false를 반환한다 Iterator.next() : 다음 값을 가져온다 Iterator.remove() : next시 가져왔던 값을 컬렉션에서 삭제시킨다. 반드시 next()후에 사용해야 한다 [ 사용하기 ] import java.util.Ar..

Java2022. 12. 22. 09:43람다식(Lambda)

[ 람다함수 ] 프로그래밍 언어에서 사용되는 개념으로 익명 함수(Anonymous functions)를 지칭하는 용어 익명 함수들은 어느 언어에서나 일급 객체라는 특징을 가짐 일급 객체 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체 를 가리킨다. 보통 함수에 인자로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원할 때 일급 객체라고 한다. [ 특징 ] 람다 대수는 이름을 가질 필요가 없고 두 개 이상의 입력이 있는 함수는 1개의 입력만 받는 람다 대수로 단순화 될 수 있다 - 커링 람다 실행블록에는 클래스의 필드와 메서드를 제약없이 사용 가능하다 람다식 내에서 사용되는 지역변수는 final이 없어도 상수로 간주된다 람다식으로 선언된 변수명은 다른 변수명과 중복될 수 없다 람다 대..

Java2022. 12. 21. 23:07향상된 for문

조건 JDK 1.5 이상 사용 가능 사용할 변수는 지역변수로 인식된다 대상은 배열이거나 여러 원소를 포함한 자료형이어야 한다 → 배열은 향상된 for문을 입력해도 컴파일러가 기존 for문으로 변환시킨다 사용하기 for(자료형 변수명 : 배열명){ 문장 } int[] arr = {1,2,3,4,5,6,7,8,9}; for(int i : arr){ System.out.print(i); } // console // 123456789 // 다차원 배열도 활용가능 int[][] arr = {{1,2},{3,4},{5,6},{7,8}}; for(int[]arr2 : arr) { for(int i : arr2) { System.out.print(i); } } // Console // 12345678 예제 class ..

스택(Stack)
Java2022. 12. 21. 09:33스택(Stack)

후입선출(LIFO - Last In First Out)의 구조이다 ex) 음료수 진열대 사용하기 import java.util.Stack; Stack stack = new Stack(); // 값 추가하기 stack.push(1); stack.push(2); stack.push(3); // 맨 위에 있는 데이터(top)를 가져옴(제거) stack.pop(); // top 반환 stack.peek(); // 초기화 stack.clear(); // 그 외 메서드들 stack.size(); // stack의 크기 출력 stack.empty(); // stack이 비어있는지 stack.contains() // stack에 포함여부 stack.search(1) // 1이 있는 인덱스를 반환 참조 https://c..

우선순위 큐(Priority Queue)
Java2022. 12. 20. 23:28우선순위 큐(Priority Queue)

Priority Queue 기본 큐의 구조(FIFO : First In First Out)를 가지면서 데이터의 우선순위를 정해 우선순위가 높은 순서대로 나간다 우선순위 힙을 기반으로 구현된다 사용되는 생성자에 따라 자연 순서에 따라 또는 큐 생성 시 제공되는 Comparator에 따라 순서가 지정된다 데이터를 삽입할 때 우선순위의 최대, 최소를 구성하여 데이터가 빠지면 중간을 계속해서 채워넣는 방식 특징 높은 우선순위의 요소를 먼저 꺼내서 처리하는 구조이다 비교할 수 없는 객체는 큐를 만들 수 없다 (비교 가능한 기준이 있어야한다) 우선순위 큐는 값을 비교해야하므로 null을 허용지 않는다 내부구조는 이진트리 힙으로 구성되어있다 (내부구조가 힙으로 구성되어 있기에 시간 복잡도는 O(NLogN)이다) Ab..

Java2022. 12. 20. 19:26객체지향 설계 원칙 - SOLID

[ 객체 지향 설계 원칙 ( SOLID ) ] 컴퓨터 프로그래밍에서 SOLID란 로버트 C. 마틴이 2000년대 초반에 명명한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이클 페더스가 두문자어 기억술로 소개한 것이다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용할 수 있다. SOLID 원칙들은 소프트웨어 작업에서 프로그래머가 소스 코드가 읽기 쉽고 확장하기 쉽게 될 때까지 소프트웨어 소스 코드를 리팩터링하여 코드 냄새를 제거하기 위해 적용할 수 있는 지침이다. 이 원칙들은 애자일 소프트웨어 개발과 적응적 소프트웨어 개발의 전반적 전략의 일부다. SOLID 원칙들은 결국 자기 자신 클래스 안에 응집도는 내부적으로 높이고, 타 클래스들 간..

Java2022. 12. 19. 23:13이차원 배열의 정렬 - Arrays.sort(arr, Comparator) / JAVA

1차원배열의 정렬import java.util.Arrays;// 오름차순Arrays.sort(arr);// 내림차순 기본타입에 선언 불가!! 참조타입에 가능Arrays.sort(arr, Collections.reverseOrder());//참조타입 변환(ex - int[])Integer[] refArr = Arrays.stream(arr).boxed().toArray(Integer[]::new);//변환 후 정렬Arrays.sort(refArr, Collections.reverseOrder());2차원배열의 정렬import java.util.Arrays;import java.util.Comparator;// Comparator는 인터페이스이기때문에 오버라이딩Arrays.sort(arr, new Compa..

728x90
728x90
image