728x90

Java

728x90

    자바 우선순위큐(PriorityQueue)

    //오름차순(우선순위가 낮은 숫자 순) PriorityQueue pq = new PriorityQueue(); //내림차순(우선순위가 높은 숫자 순) PriorityQueue pqHightest = new PriorityQueue(Collections.reverseOrder()); pq.add(1); pq.offer(2); pq.add(3); pq.poll(); // 첫번째 값을 반환하고 제거 비어있다면 null System.out.println(pq); // [2, 3] pqHightest.add(1); pqHightest.add(2); pqHightest.add(3); pqHightest.peek(); // 첫번째 값 참조 3 pqHightest.remove(); // 첫번째 값 제거 System.o..

    자바 스트림(Stream), 람다(Lambda)

    Stream 생성 배열 Arrays 클래스의 static 메소드인 stream()에 배열 인스턴스를 전달 int[] i = {1,2,3,4,5}; IntStream istm = Arrays.stream(i); 컬렉션 컬렉션 인스턴스를 대상으로 디폴트 메소드 stream()을 호출 List s = Arrays.asList("a", "b", "c"); Stream stm = s.stream(); 데이터 직접 전달 Stream클래스 혹은 IntStream 등의 기본 자료형 스트림의 static 메소드인 of()에 stream에 넣고 싶은 데이터들을 전달 Stream istm = Stream.of(1,2,3); IntStream istm = IntStream.of(1,2,3); 중간 연산 filter(Predi..

    자바 순열, 조합 구하기 (파이썬 itertools 라이브러리)

    자바는 파이썬의 itertools 라이브러리 같은 내장함수로 순열, 조합이 없어 직접 구현해야함 n개중에 r개 선택한다는 가정 Depth를 r만큼 재귀 변수 int n, r : n개 중 r개를 뽑음 int[] now : 현재 저장한 list값 인덱스 List result : 결과값 boolean[] visited : 순열 방문 여부 순열 public static void permutation(List list, int depth) { if (depth == r) { List temp = new ArrayList(); for (int i = 0; i < now.length; i++) { temp.add(list.get(now[i])); } result.add(temp); return; } for (int ..

    ProcessBuilder Java 쉘 명령어, 스크립트 실행

    쉘 스크립트 실행 1. ProcessBuilder 객체 생성 ProcessBuilder builder = new ProcessBuilder(); ProcessBuilder객체를 사용하여 Linux 또는 Window의 커맨드라인의 커맨드입력을 실행할 수 있다. 2. directory(new File(“파일경로”)) : 해당 커맨드를 실행할 경로 String homeDirectory = System.getProperty("user.home"); builder.directory(new File(homeDirectory)); 3. command(“커맨드”) : 커맨드 입력메서드 builder.command("sh", "-c", "ls -l | grep P"); 4. ProcuessBuilder.start() :..

    [Mac OS / Java] 맥 JDK 자바 버전 변경

    현재 jdk 버전 확인 java -version 설치된 모든 jdk 버전들 확인 /usr/libexec/java_home -V 사용하는 shell 확인 echo $SHELL bash 혹은 zsh vi 를 통해 환경변수 수정 vi ~/.bash_profile #bash vi ~/.zshrc # zsh 사용하는 shell에 따라 파일 열기 export JAVA_HOME=$(/usr/libexec/java_home -v 1.8.0) export JAVA_HOME=$(/usr/libexec/java_home -v 11) export JAVA_HOME=$(/usr/libexec/java_home -v 17) 변경하려는 버전 입력 i 키를 입력해 수정 :wq! 를 입력해 저장 후 편집기 닫기 source ~/.zs..

    멀티 스레드 환경, 동시성 이슈, 해결방법 | 스레드 안전성 (Thread-safe)

    동시성 이슈멀티스레드 방식은 한 코어에서 여러 스레드를 이용해서 번갈아 작업을 처리하는 방식공유하는 영역이 많아 프로세스방식보다 context switcing 오버헤드가 작아, 메모리 리소스가 상대적으로 적다는 장점멀티스레드 프로세스의 경우 여러 스레드가 같은 프로세스 내의 자원을 공유해서 작업하기 때문에 서로의 작업에 영향을 줌여러 스레드가 동시에 하나의 자원을 공유하고 있기 때문에 같은 자원을 두고 경쟁상태(raceCondition) 같은 문제가 발생2023.05.11 - [CS/OS] - [Process & Thread] 스레드, 멀티 스레드 [Process & Thread] 스레드, 멀티 스레드1. 스레드 1) 스레드 하나의 프로세스 내에서 실행되는 동작의 단위 각 스레드는 프로세스의 스택 메모리..