목록Java (68)
Hyunebee
Generics 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일시 타입체크를 해주는 기능이다. 컴파일 시에 체크하기 때문에 객체의 타입 안전성을 높이고 형변환의 번거로움이 줄어든다. Generics은 클래스와 메서드에 선언할 수 있다. ex) 클래스 class init{ Object item; void setItem(Object item){ this.item = item; } Object getItem() { return item; } } class init{ // T는 타입변수 T item; void setItem(T item){ this.item = item; } T getItem() { return item; } } 아래 처럼 변경이 가능하다. T는 타입변수라고 하며 T이외에 다른 문..
import java.util.*; class Main { public ArrayList solution(int[] arr, int n){ ArrayList reverseInt = new ArrayList(); for(int x: arr){ int reverse_x = 0; while(x!=0){ // 나머지를 더하는 것 reverse_x = reverse_x*10 + (x%10); x = x/10; } if(isPrime(reverse_x)){ reverseInt.add(reverse_x); } } return reverseInt; } public boolean isPrime(int x){ if(x == 1){ return false; } for(int i =2; i * i

HashSet Set인터페이스를 구현 Set의 대표적인 특징처럼 중복된 요소를 저장하지 않는다. 그리고 순서를 보장하지 않기 때문에 저장 순서를 유지하고자 한다면 LinkedHashSet을 사용한다. TreeSet TreeSet은 이진 검색 트리라는 자료구조의 형태로 데이터를 저장하는 컬렉션 클래스이다. 이진 검색 트리는 정렬, 검색, 범위 검색에 높은 성능을 보이는 자료 구조이다. 지금은 더 향상된 레드-블랙 트리로 구현되어 있다. 이또한 Set인터페이스를 구현 중복된 요소를 저장하지 않고 순서를 보장하지 않는다. 이진 검색트리의 노드는 class TreeNode{ TreeNode left; TreeNode right; Object element; } 왼쪽 오른쪽 자식 노드와 객체를 저장하기위한 변수로..
import java.util.*; class Main { public int solution(int[][] arr, int n){ int meetStd = 0; //만난 사람수 int max_meet=0; // 얼마나 많이 같은 반이였나 int result = 0; // 해당학생 for(int i=0; i
배열의 복사 - copyOf() : 배열 전체 - copyOfRange : 배열의 일부를 복사해서 새로운 배열을 만들어 변환한다. 지정된 범위의 끝은 포함하지 않는다. 배열 채우기 - fill() : 배열의 모든 요소를 재정된 값으로 채운다. - setAll() : 배열을 채우는데 사용할 함수형 인터페이스를 매개변수로 받는다. ex) Arrays.setAll( 배열이름, () -> lamda식 ) 배열의 정렬과 검색 - sort() : 배열을 정렬 - binarySearch() : 반드시 배열이 정렬된 상태이어야 올바른 결과를 얻는다. 만일 검색한 값과 일치하는 요소가 여러개라면 어떤 것의 위치가 반활될지는 알 수 없다. 이것은 순차검색이 아니라 이진검색이기 때문에 검색속도가 상당히 빠르다. 배열의 출력..

Stack, Queue Stack은 선입후출 구조이고 Queue는 선입선출구조인다. 순차적으로 데이터를 추가하고 삭제하는 Stack에는 ArrayList와 같은 배열기반의 컬렉션클래스가 적합하다. Queue는 데이터를 꺼낼때 마다 첫번째가 삭제됨으로 LinkedList가 더 적합하다. ArrayList로 할경우 삭제되면서 빈공을 채우기 위해 배열의 복사가 일어남으로 메모리에 낭비가 있다. ex ) import java.util.*; class StackQueueEx { public static void main(String[] args) { Stack st = new Stack(); Queue q = new LinkedList(); // Queue인터페이스의 구현체인 LinkedList를 사용 st.pu..
import java.util.*; class Main { //아래 두좌표는 상하좌우 좌표를 더하거나 빼줄수 있다. (-1,0) (0,1) (1,0) (0,-1) int[] dx = {-1,0,1,0}; int[] dy = {0,1,0,-1}; public int solution(int[][] arr, int n){ int result = 0; for(int i = 0; i=0 && nx=0 && ny

Collection Framework Collection Framework은 데이터 군을 저장하는 클래스들을 표준화한 설계를 뜻한다. Collection Framework은 크게 3가지의 인터페이스를 가지고 있다. -List : 순서가 있는 데이터의 집합, 데이터의 중복을 허용한다. -Set : 순서를 유지하지 않는 데이터의 집합, 중복을 허용하지 않는다. -Map : key, value를 사용하는 데이터 집합 순서는 유지하지 않으며 키의 중복은 허용x, 값의 중복은 허용한다. list와 set의 공통된 부분을 뽑아 만든 Collection도 존재한다. List Interface Set Interface Map Interface