본문 바로가기

전체 글669

자바 Stream, max&min count, match, find, reduce, collectors, to map, grouping by, partitioning by, for each, parallel stream Max and Min Count - 스트림 안의 데이터 최대값, 최소값, 개수 - max: Stream 안의 데이터 중 최댁밧을 반환. Stream이 비어있다면 빈 Optional을 반환 - min: Stream 안의 데이터 중 최소값을 반환. Stream이 비어있다면 빈 Optional을 반환 - count: Stream 안의 데이터 개수를 반환 Optional max(Comparator 2023. 6. 20.
Java Stream, filter, map, sorted, distinct, flatmap 스트림 Stream - 컬렉션 형태로 구성된 데이터를 람다를 이용해 간결하고 직관적인 프로세스를 가능하게 한다. - 스트림을 쓰면 사실 for, while을 안쓰게 됨 - 손쉽게 병렬 처리도 가능 String Stream을 만드는 예시 Stream nameStream = Stream.of("Alice", "Bob", "Charlie"); 스트림에 담긴 names를 List로 담기 List collect = nameStream.collect(Collectors.toList()); 배열을 스트림으로 만들 수도 있다. String[] cityArray = new String[]{"Seoul", "tokyo", "busan"}; Stream cityStream = Arrays.stream(cityArray).. 2023. 6. 19.
절대값을 이용한 i, j의 증감 규칙 찾기 (절대값과 나머지를 이용하기) 다음과 같은 출력을 해야 하는 문제가 있다. Sssss sSsss ssSss sssSs ssssS sssSs ssSss sSsss Sssss 어떻게 풀까? 직관적으로 떠오르는 규칙은 다음과 같다. 1) i == j 2) ( i + j ) % 8 == 0 이를 코드로 옮기면 다음과 같다. public static void problem1(){ for (int i =0; i j =1 i = 2 -> j =2 i = 3 -> j =3 i = 4 -> j =4 i = 5 -> j = 3 i = 6 -> j =2 i = 7 -> j = 1 i = 8 -> j =0 보면 i와 j가 순서대로 같이 증가하다가 5 시점부터 i는 증가하고 j는 감소한다. 이에 대한 수학적 규칙은 다음과 같다. j = abs(4 - abs.. 2023. 6. 18.
pointer 방식 LinkedList 자바 구현 코드 포인터를 이용한 방식의 연결 리스트를 만든다. 연결리스트에 필요한 노드 객체를 LinkedList 클래스 내부에 만든다. Node는 데이터용 필드인 data와 자기 자신과 가은 클래스형을 참조하는 next를 필드로 갖는다. 다음 노드를 참조하는 next를 뒤쪽 포인터라고 부를 수 있다. 각 노드의 필드 next에 넣어두는 것은 그 노드의 다음 노드에 대한 참조이다. public class PointerLinkedList { private Node head; private Node current; static class Node{ private E data; private Node next; public Node(E data, Node next) { this.data = data; this.next = n.. 2023. 6. 18.
ring 방식 int queue 자바 구현 코드 자료구조 중 하나인 queue를 ring 방식으로 구현한 코드이다. 이 코드에서 front와 rear 변수는 큐의 원소들이 저장된 배열에서 현재 프런트(front)와 리어(rear)의 위치를 나타낸다. - front: 큐에서 가장 앞에 있는 원소의 인덱스를 가리킨다. deque() 연산이 발생하면 front 값이 증가한다. 즉 한 칸씩 이동한다. - rear: 큐에서 가장 뒤에 있는 원소의 다음 위치를 가리킨다. enque() 연산이 발생하면 rear는 값이 증가한다. 즉 한 칸씩 이동한다. 1. 인큐(enqueue()) 연산: rear 인덱스가 큐의 맨 뒤에 위치하고 있는 상태에서 인큐가 발생하면 rear는 배열의 처음으로 되돌아간다. 이렇게 하면 배열의 처음부터 빈 공간이 있을 때까지 데이터를 저장할.. 2023. 6. 17.