본문 바로가기

코딩일기/Java16

[Java] 2차원 배열 정렬 방법 2차원 배열을 사용하다보면 특정 index를 기준으로 정렬하고 싶을때가 있다. 물론 우리가 자료구조를 통해서 정렬을 할수도 있지만 정렬을 하는게 주된 문제가 아닐때는 자바에서 주어지는 정렬 클래스를 사용하는게 더 빠른 방법이다. 그래서 지난번에 배운 Comperable 혹은 Comperator 클래스를 사용하면 된다. https://wpioneer.tistory.com/101 [Java] Comperator 와 Comperable 자바에서는 배열이나 리스트의 정렬을 위해서 Comperator와 Comparable 인터페이스를 제공한다. 두 인터페이스는 모두 정렬을 하기 위해서 사용한다는것은 동일하다. 하지만 둘의 차이점은 아래와 같 wpioneer.tistory.com 2차원 배열 오름차순 1차원 배열을.. 2021. 6. 14.
[Java] Stack 클래스 사용방법 Stack 클래스에 대한 설명에 앞서서 Stack에 대한 설명부터 하겠다. Stack은 제일 마지막에 있는것이 제일먼저나오는 형태의 자료구조이다. 위의 형태를 LIFO(Last In First Out)이라고 한다. 그럼 Stack의 특징을 한번 살펴보자. 1. 먼저들어간 자료가 제일 마지막에 나옴. 2. 시스템 해킹에서 버퍼 오버플로우 취약점을 이용한 공격을 할때 스택 메모리의 영역에서 함 3. 인터럽트 처리, 수식의 계산 서브루틴의 복귀 번지 저장 등에 쓰인다. 4. 그래프의 깊이 우선 탐색에서 사용 5. 재귀적 함수를 호출할때 사용 Stack 사용법 Stack 선언 import java.util.Stack; Stack stack = new Stack(); //int형 스택 선언 Stack 값 추가 s.. 2021. 6. 11.
[Java] Comperator 와 Comperable 자바에서는 배열이나 리스트의 정렬을 위해서 Comperator와 Comparable 인터페이스를 제공한다. 두 인터페이스는 모두 정렬을 하기 위해서 사용한다는것은 동일하다. 하지만 둘의 차이점은 아래와 같다. Comparable 1. 기본 정렬 기준을 구현하는데 사용 2. 반드시 compareTo() 메소드를 정의해야 한다. Comperator 1. 기본 정렬 기준 말고 다른 기준으로 정렬하고자 할때 사용 2. compare()메소드를 구현해야한다. 그럼 각각의 인터페이스에 대해서 자세히 알아보자. Comperable 정렬 수행시 기본적으로 젹용되는 정렬기준이 되는 메소드를 정의하는 인터페이스이다. Integer,Double 클래스 : 오름차순 정렬 String 클래스 : 사전순 정렬 구현 방법 정렬할 .. 2021. 6. 3.
[Java] 배열 복사 하는 방법 ( clone(), copyOf(), copyOfRange() ) 이번에 내가 배운것은 copyOfRange()라는 메소드이다. 해당 메소드는 우리가 어떤 배열을 특정 index부터 우리가 원하는 숫자만큼 해당 배열을 복사해오는 것이다. 우리가 흔히 어떤 값을 복사 해올때는 아래와 같이 해왔다. int num1 = 0; int num2 = num1; 아래와 같이 하고 num2를 다른 수로 바꿔주고 출력을 하게 됐을때 결과는 아래와 같다. num2 = 5; System.out.println(num1); System.out.println(num2); 결과 0 5 이처럼 되는 이유는 값을 복사한것이기 때문에 num1과 num2의 값은 별개가 되는것이다. 하지만 배열에서는 위와 같은 방식으로 하면 안된다. 배열에서는 위와 같은 방식으로 복사하는 방법은 얕은 복사라고 하는데 그.. 2021. 6. 2.