반응형 Language252 자바 addAll 으로 list에 배열, 다른 list, set을 넣는 방법 자바에서 많이 사용하게 되는 경우 중 하나가 배열(Array), List, Set 에서 Array, List, Set 으로 옮겨주는 경우인데 (array to list(set) ..) 대부분은 for 문을 사용해 옮기곤 하는데 이게 하다보면 엄청나게 귀찮다 하지만 List와 Set은 Collection을 상속하기 때문에 addAll이라는 엄청난 메소드를 사용할 수 있는데 보면 addAll 메소드는 파라미터가 Collection 타입이기 때문에 Collection을 상속하기만 하면 통곡의 for문 노가다를 사용하지 않고도 쉽고 편하게 넣을 수 있게 된다 (List, Queue, Set은 Collection 상속) 위 이미지의 예제에서도 List와 Set은 Collection을 상속하기 때문에 그냥 넣어주기.. 2021. 10. 6. 자바 String.charAt 을 String으로 받는 방법 자바를 이용한 알고리즘 문제 풀다가 자주 나오는 케이스인데 int 타입의 값을 받아서 배열 안에 넣고 적절한 로직을 수행한 뒤 반환하는 형식의 문제인데 int 형식의 값을 받아서 배열 안에 넣어주려면 for 문을 돌리면서 한 글자씩 뽑아서 넣어줘야 한다 여기서 문제는 String을 이용한 글자 뽑기 방법이 CharAt / substring 밖에 없는데 substring의 경우에는 end index를 설정해야 해서 end index가 문자열 크기를 넘기게 설정하면 에러가 난다 즉 손이 많이 가서 쓰기 귀찮다는 말이다 반면 CharAt의 경우에는 한글자씩 뽑아올 수 있는건 좋은데 문제는 뽑은 값을 Character 타입으로 반환하기 때문에 이걸 또 String 타입으로 변환해서 사용해야 하는데 편하게 Str.. 2021. 10. 5. 자바 배열 자료형 선언 시 다른 자료형에서 즉시 변환 방법 자바에서 array, list, set 기타등등 각종 배열 형태의 자료형을 Collection을 상속받는 자료형들로 서로 변환해줄 때 일반적으로는 for 문을 돌리면서 하나씩 다 넣어주는 방법을 사용하는데 이게 손도 많이가고 귀찮다 위 이미지의 방법으로 정말 간단하게 변환이 가능한데 예를 들어 Array, set, vector을 ArrayList로 변환한다고 해 보자 위 이미지를 참고해서 ArrayList 리스트명 = new ArrayList(변경할 자료형태 변수명); 을 해주면 간단하게 변환이 가능하다 이건 뭐 도라에몽도 아니고 넣기만 하면 바로 ArrayList 타입으로 변환이 되는 것이 보이는데 구조를 한번 알아보자면 ArrayList의 생성자에서는 파라미터를 Collection 타입으로 받는데 C.. 2021. 10. 5. 자바 Calendar를 이용해 쿼리 between 처럼 사용방법 자바에서 로직을 짜다가 오라클, MySQL 같은 DB의 BETWEEN 컬럼명 '시간' AND '시간' 이런 느낌의 코드를 짜고 싶었는데 Calendar의 after / before 메소드를 사용하면 쿼리의 between 처럼 사용할 수 있더라 먼저 Calendar 객체 두개를 만든 뒤 set을 통해 시간 범위를 잡아준다 다음으로 현재 시간을 Calendar 안에 넣어준 뒤에 현재시간.after(조건1) && 현재시간.before(조건2) 이렇게 사용해주면 DB의 between과 동일하게 사용할 수 있다 예제에 사용한 코드는 아래 코드를 참고해주면 된다 public static void main(String[] args) { Calendar time1 = Calendar.getInstance(); time.. 2021. 7. 5. 자바 최빈값(Mode) 알고리즘 정리 최빈값(Mode) 알고리즘이란 주어진 데이터 중에서 가장 많이 나온(중복된) 값을 말하는데 값의 범위가 매우 넓다면 COUNT를 담아두는 방법을 변경해야 겠지만 (Map을 사용한다거나 등..) 특정 범위 안으로만 들어올 경우에는 (5이하, 100이하 등) 값의 범위와 동일하게 index 배열을 만든 뒤 for 문을 돌리면서 값에 해당하는 내용을 인덱스 배열에서 1씩 올려주고 for 문을 돌리면서 해당 인덱스 배열의 최대값을 구하면 되는데 최대값이 곧최빈값이 되므로 최대값을 가져와주면 바로 끝이 난다 예제에 사용한 코드는 다음과 같다 public static void main(String[] args) { // 최빈값 알고리즘(Mode Algorithm) // 주어진 데이터에서 가장 많이 나온(중복된) 값.. 2021. 5. 30. 자바 병합(Merge) 알고리즘 정리 병합(Merge) 알고리즘은 오름차순으로 정렬되어 있는 정수 배열을 하나의 배열로 병합해주는 알고리즘인데 먼저 두 배열을 오름차순 정렬시킨 후 while을 돌려주면서 두 배열의 값을 비교해 작은 값을 반환시킬 배열에 넣어준다 해당 while은 한 배열의 끝까지만 도달해도 종료되는 조건이기 때문에 arr1의 1 arr2의 2 arr1의 3 arr2의 4 를 넣어주면 j가 2이기 때문에 i < arr1.length && j < arr2.length 조건을 충족시키지 못하기 때문에 종료되고 더 긴 배열인 arr1만 남게 되는데 이후 while을 돌려주면서 arr1의 값을 쭉 넣어주면 오름차순으로 정렬했기 때문에 기존에 넣었던 값보다 더 큰 값이 차례대로 들어가게 된다 여기서 while(j 2021. 5. 30. 이전 1 ··· 10 11 12 13 14 15 16 ··· 42 다음 반응형