Java16 [Java] Equals와 HashCode Equals와 HashCode에 대해 좀 더 자세히 공부 할 필요성을 느껴서 정리한다. Equals 두 객체의 동등성(내용)을 비교한다. HashCode 두 객체의 동일성(같은 객체)을 비교한다. public class Human { private int age; private String name; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public static void main(String[] args) { Human h1.. 2020. 7. 4. [프로그래머스] 베스트앨범 (level3) java 주말 + 평일 틈틈이 풀었음에도 꼬박 일주일이나 걸렸다.. 질문으로 도움까지 요청하며 정말 겨우 해결했다. 문제는 링크로 대체. // 요구사항 정리 // 1. 가장 많이 재생된 장르를 찾는다 // 2. 같은 장르의 노래중 재생 횟수가 높은 노래가 먼저 재생된다. // 3. 재생횟수가 같은 경우에는 인덱스가 낮은 노래가 먼저 재생된다. public int[] solution(String[] genres, int[] plays) { int[] answer = {}; Map topPlay = new HashMap(); Map firstSong = new HashMap(); Map countList = null; int genLength = genres.length; for(int i=0; i 2019. 12. 17. [Effective Java] 28. 배열보다는 리스트를 사용해라 배열과 제네릭 타입의 차이 배열은 공변(covariant)이다. 예를들어 sub가 super의 하위 타입이라면 배열 sub[]는 배열 super[]의 하위 타입이 된다고 할 수 있다. 즉, 공변이란 함께 변한다는 뜻이다. 반대로 제네릭은 불공변(invariant)이다. List 는 List 의 하위 타입도 아니고 상위 타입도 아니다. 예제를 확인해보자. Object[] objectArray = new Long[1]; //ArrayStoreException 발생 => Long 타입에 String을 넣을 수 없음. objectArray[0] = "루피"; //컴파일시점 에러 List objectList = new ArrayList(); objectList.add("루피"); 제네릭과 다르게 배열은 실체화(r.. 2019. 7. 17. [Java] 자바 transient transient 란? transient는 Serialize 하는 과정에서 제외하고 싶은 경우 선언하는 키워드이다. 사용하는 이유 패스워드와 같은 보안정보를 직렬화(Serialize) 과정에서 제외하고 싶은 경우에 적용 다양한 이유로든 데이터를 전송하고 싶지 않을 때 선언 예제 class Member implements Serializable { private String name; private String email; private int age; public Member(String name, String email, int age) { this.name = name; this.email = email; this.age = age; } @Override public String toString() .. 2019. 7. 16. [프로그래머스] 프린터 (level 2) java 문제 https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 | 프로그래머스 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 programmers.co.kr 이 문제를 풀기에 앞서 priorityQueue(Collections.r.. 2019. 5. 13. split 세부적으로 사용하기 자바에서 split을 사용해 원하는 단어를 기준으로 구분할 수 있다는 사실은 대부분 알 것이다. 그런데 검색을 하다가 split을 신기하게 사용하는 방식이 있어 메모해 두려고 한다. 아래 예제를 보면, ","를 기준으로 구분한다고 할 때 나눠진 항목에 대해서 인덱스 번호를 부여해 내가 원하는 단어만 쉽게 가져올 수 있다. 12345678910111213141516public class mainClass { public static void main(String[] args) { String str = "IT,개발의,세상"; String val1 = str.split(",")[0]; String val2 = str.split(",")[1]; String val3 = str.split(",")[2]; Sys.. 2019. 4. 22. 이전 1 2 3 다음