코테문제 풀어보다가 관련해서 나왔길래 한 번 정리해봅니다.오늘 비교해 볼건 모두 인터페이스이다.그렇기에 사용하려면, 해당 인터페이스 안에 구현되어있는 메서드 역시 구현해줘야만 한다.자기 자신과 파라미터를 통해 들어오는 객체와의 비교lang에 속해있기에, import 할
Arrays 클래스에는 배열을 다루기 위한 여러 메서드가 들어있다.Arrays의 내부에 있는 모든 메서드는 static 메서드이므로 객체를 생성하지 않고도 사용할 수 있다.자주 사용되는 메서드들로 우선 정리해보자.asList는 배열을 고정크기의 List형태로 변환해서
코테 문제를 풀다가 정말정말 오랜만에 본 단어들이다. 최대공약수, 최소공배수.자바에서는 어떻게 구할 수 있는지 한 번 알아보자.BigInteger 에는 최대공약수를 구하는 gcd함수가 있다. 요 함수를 사용하면 아주 쉽게 구할 수 있다.재귀를 이용해서 간단하게 구현할
코테를 풀다가 소수를 찾는 코드가 필요로 한 적이 있음에도 불구하고, 나는 그 코드를 짜내지 못하였다.그에 따라 나에 대한 실망으로 여기에 남겨놓는다.해당 수가 i로 나눠지면, 그때부터는 소수가 아니게 되기에 그걸 기준으로 해서 소수임을 확인할 수 있다.이렇게 간단한건
종종 코딩테스트 문제를 풀다보면 Character 형을 쓰게 되는데, 문제는 숫자인 Character를 Integer로 바꾸려고 하면 이와 같은 아주 귀찮은 짓을 하고 있었다.뭔가 비효율적인 것 같기도하고 매번 코드를 저렇게 써야하는게 아주 귀찮기도 해서 다른 방법이
최근에 공부하면서 이전엔 몰랐던 것들에 대해서 정리를 해보고자 한다.equals 와 hashcode는 모든 java 객체의 부모 객체인 Object 클래스에 정의된 함수다.그렇기에 Java의 모든 객체는 Object 클래스에 정의된 equals와 hashcode 함수를
보통 코드를 짜다보면 List a = new ArrayList(); 라고 선언하는 것을 볼 수 있다. 왜 앞에도 ArrayList를 사용하지 않는 것일까? 요약하자면, 객체지향 프로그래밍의 일환으로 다형성을 지원하기 위함이다.
자바에서 this는 인스턴스 자기 자신을 가리키는 키워드다.예를 들어서 다음과 같은 클래스가 있다고 해보자.위와 같이 car에 이름을 정하는 setCar라는 setter 함수를 선언하였다.여기서 인자값을 필드 값과 동일하게 하려면 어떻게 해야할까?this를 사용하면 메
stream api는 자바 8 se부터 추가된 것이며, 많은 양의 데이터에 접근할 때 기존의 반복분이나 반복자(iterator)를 사용했을 때의 가독성 떨어지는 코드나, 코드의 재사용성에 대해서 단점을 극복하기 위해 도입된 기능이다.stream api는 데이터를 추상화
Stream api는 다음과 같이 다양한 데이터에서 생성할 수 있다.자바에서 제공하는 컬렉션들의 조상격인 Collection 인터페이스에서는 stream() 메서드가 정의되어있다.그렇기에, Collection 인터페이스를 구현한 모든 List, Set 컬렉션에서는 st
Stream API에서 생성된 초기 스트림은 중개 연산을 통해서 새로운 스트림으로 변환된다.이러한 중개 연산은 스트림을 전달받아서 스트림을 반환하므로, 중개 연산은 연속으로 사용할 수 있다.또한 중개 연산은 filter-map 기반의 API를 사용함으로 지연(lazy)
Stream API 에서 중개 연산을 통해서 변환된 스트림은 마지막 최종 연산을 통해 각 요소를 소모하여 결과값을 리턴한다.즉, 지연(lazy) 되었던 모든 중개 연산이 최종 연산 시에 다 수행되는 것이다.이렇게 최종 연산 시에 모든 요소를 소모한 Stream은 다시
this 키워드에 대해서 작성했는데, 이번엔 this() 생성자다.java의 클래스 생성자도 오버로딩을 할 수 있다. 즉 우리는 여러개의 변수를 지닌 생성자를 만들 때 마다 매번 코드를 작성해줘야할 필요가 없고, 그냥 오버로딩해서 할 수 있다는 소리다.그 기능을 하는게
보통 배열을 List로 바꿀 때 Arrays.asList를 사용하는 경우가 있을텐데, Char\[]에 대해서는 우리가 원하는 것처럼 List<Character>가 되지 않고 List<char\[]>로 나온다. 왜 그런 것일까?Arrays.asList 메서드는
종종 배열 또는 리스트에서 특정 값의 개수를 찾아야하는 경우가 있다.그런 경우에는 직접 for문을 돌면서 찾는 경우도 있었는데, Collections.frequency를 이용하면 간단하게 코드를 작성할 수 있다.예를 들어 아래와 같은 배열이 존재한다고 할 때, 여기서
함수 또는 메서드 입력 변수 명번역은 매개변수위의 int a, int b는 paramter함수 또는 메서드를 호출할 때, 전달 또는 입력되는 실제 값번역은 전달인자, 인자위의 예시로 들은 test 메서드를 호출할 때 들어가는 10과 15는 argument
이래저래 일을 하다보면, 객체를 생성해서 전달하는 일이 굉장히 잦다.이런 경우에는 어떤 방법을 사용하는 것이 가장 좋은지에 대해서 알아보도록 하자.예를 들어 다음과 같은 영양제 클래스가 있다고 해보자.이 클래스를 객체로 만들어서 다른 쪽으로 전달한다고 생각해보면 보통은
Java의 모든 클래스의 기본 클래스이다.hashCode(), equals(), toString(), clone(), finalize()등의 메서드 제공JAVA 7 부터 추가되었음null-safe한 메서드 제공객체 비교 (compare), 해시코드 생성 (hash),
Object 클래스의 toString() 메서드는 객체의 문자 정보를 반환한다.'객체의 문자 정보' 라는 것은 객체를 문자열로 표현한 값을 의미한다.기본적으로 Object 클래스의 toString() 메서드는 "클래스명@16진수 해시코드" 로 구성된 문자정보를 반환합니
try-catch-finally 는 우리가 흔히 예외처리를 하기 위해서 사용하는 구문중 하나이다.보통은 예외처리가 필요한 부분을 try에 넣고, 예외를 처리할 때는 catch로, 그리고 자원의 해제를 finally 부분에서 진행했다.예를 들면 아래처럼위의 코드에서는In