Java40 [자료구조] 자바 스택(Stack)의 클래스 사용하기 스택(Stack)의 특징 1. 먼저 들어간 데이터가 나중에 나오는 후입선출, LIFO (Last In First Out) 구조로, 마트용 음료수 진열대와 같은 구조이다. 2. 한 쪽 끝에서만 데이터를 넣고 뺄 수 있는 자료 구조여서 데이터를 쌓는 형식으로 저장하며 조회, 추가, 삭제 등 모두 가장 위에 있는 (가장 마지막에 삽입된) 값에서 이루어진다. 이 데이터를 Top이라고한다. 3. 그래프(Graph)의 깊이 우선 탐색(DFS)에 사용된다. 4. 재귀적(Recursion) 함수를 호출할 때 사용한다. 스택(Stack) 클래스 선언 import java.util.Stack; Stack stack = new Stack(); 메서드 public Element push(Element item);// 데이터 .. Algorithm/Stack & Queue 2022. 6. 19. [자료구조] 자바 큐(Queue)의 클래스 사용하기 큐(Queue)의 특징 1. 먼저 들어간 데이터가 먼저 나오는 선입선출, FIFO(First In First Out) 구조로, 줄을 서서 기다리는 구조와 같다. 2. 한 쪽 끝은 프런트(front)로 정하여 삭제 연산만 수행한다. 3. 한 쪽 끝은 리어(rear)로 정하여 삽입 연산만 수행한다. 4. 그래프(Graph)의 넓이 우선 탐색(BFS)에 사용된다. 큐(Queue) 클래스 큐(Queue) 선언 자바에서 큐(Queue)는 LinkedList를 활용해서 사용한다. import java.util.Queue; import java.util.LinkedList; Queue queue = new LinkedList(); 큐(Queue) 동작 및 메서드 Enqueue 동작 큐에 데이터를 추가하는 동작으로 o.. Algorithm/Stack & Queue 2022. 6. 19. [Java] Comparator, Lamda 사용하여 2차원 배열 정렬하기 오름차순, 내림차순 등 정렬을 할 때 음수가 나와야 오름차순인지, 양수가 나와야 오름차순인지 항상 헷갈려서 기억하기 위해 잘 정리된 포스팅을 참고하여 남겼다. 2차원 배열을 바로 Arrray.sort()를 통해 정렬하려고 하면, 비교 기준이 구현되어 있지 않기 때문에 캐스팅에 실패했다는 java.lang.ClassCastException: I cannot be cast to java.lang.Comparable 오류가 발생한다. 그 해결책으로 Comparable,Comparator 인터페이스를 구현하여 정렬기준을 추가해 2차원배열 뿐만 아니라 객체비교할 때도 사용할 수 있다. int[][] arr = new int[][]{{5,10},{3,30},{1,50},{4,20},{2,40},{5,60}}; Ar.. JVM/Java 2022. 6. 8. [Java] Arrays.sort 와 Collections.sort 정리 자료구조 알고리즘을 공부할 때 꼭 알아둬야할 기능인데.. 할 때마다 헷갈리고 까먹어서 정리좀 해둬야겠다.. Arrays.sort 오름차순 기본 오름차순 정렬 : 숫자 - 대문자 - 소문자 - 한글 순서로 정렬 import java.util.Arrays; public class Sort { public static void main(String[] args) { String[] str = {"a", "1", "가", "A", "3", "나"}; for(String s : str) {// 정렬 전 출력 System.out.print(s + " "); } System.out.println(); Arrays.sort(str);// 정렬 후 출력 for(String s : str) { System.out.prin.. JVM/Java 2022. 6. 6. [Java] StringTokenizer Class 사용 및 Split 비교 StringTokenizer Class ? 문자열을 스페이스, 특정 구분자 등의 기준으로 분리할 때 사용 StringTokenizer 구문 StringTokenizer st = new StringTokenizer("문자열");// 띄어쓰기 기준으로 문자열 분리 StringTokenizer st = new StringTokenizer("문자열", "구분자");// 구분자 기준으로 문자열 분리 StringTokenizer st = new StringTokenizer("문자열", "구분자", boolean); // 구분자 기준으로 문자열 분리할 때 구분자도 Token으로 넣을지(true), 말지(false default) StringTokenizer 라이브러리 Import import java.util.Str.. JVM/Java 2022. 5. 28. [IntelliJ] IntelliJ IDEA Community 다운로드 및 설치 후 실행하기 IntelliJ 다운로드 IntelliJ IDEA 홈페이지 접속 IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrains A Capable and Ergonomic Java IDE for Enterprise Java, Scala, Kotlin and much more... www.jetbrains.com 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다. 추천인 코드 : AF8800551 라이센스가 있다면, Ultimate Download 받으면 된다. IntelliJ 설치 설치 옵션 Create Desktop Shortcut : 바로가기 생성 Update PATH variable : 설치한 프로그램의 bin 폴더 경.. IDE/IntelliJ 2022. 5. 12. [SpringBoot] 전자정부프레임워크 SpringBoot 테스트용 웹 프로젝트 만들기 기본Spec EgovFramework 4.0 - 64bit Java 1.8 Tomcat 8.0 Gradle Project SpringBoot 2.6.5 전자정부 프레임워크 4.0 설치 https://haenny.tistory.com/294 [EgovFramework] 전자정부프레임워크 4.x 개발환경 다운로드 및 Lombok 설치 [EgovFramework] 전자정부프레임워크 4.x 개발환경 다운로드 및 Lombok 설치 전자정부프레임워크 다운로드 전자정부프레임워크 4.x 개발환경 다운로드 받으러가기 개발환경 - 4.x 다운로드 | 표준프레임 haenny.tistory.com JDK (Java) 설치 https://haenny.tistory.com/219 [Java] Windows10 환경 OpenJDK.. JVM/SpringBoot 2022. 4. 4. [EgovFramework] 전자정부프레임워크 4.x 개발환경 다운로드 및 Lombok 설치 전자정부프레임워크 다운로드 전자정부프레임워크 4.x 개발환경 다운로드 받으러가기 개발환경 - 4.x 다운로드 | 표준프레임워크 포털 eGovFrame 처리중입니다. 잠시만 기다려주십시오. www.egovframe.go.kr Lombok 설정 lombok 다운로드 Project Lombok projectlombok.org lombok.jar 파일이 있는 위치에서 lombok.jar 파일을 실행시킨다. 명령프롬포트(cmd) 창에서 lombok.jar 파일이 있는 위치로 이동한 뒤 jar 파일 실행 명령어를 입력한다. 더보기 java -jar lombok.jar 명령어를 실행시키면 아래와 같은 lombok Installer 창이 열릴 것이다. IDE를 찾을 수 없다는 경고 문자가 뜨는 것은 무시해도 좋다. l.. IDE/Eclipse 2022. 3. 31. [Java] 스트림 (Stream) 타입별 변환 스트림 (Stream) 만들기 컬렉션 스트림 Collection에 stream()이 정의되어 있어 Collection의 자손인 List와 Set을 구현한 컬렉션 클래스들은 모두 stream()으로 스트림을 생성할 수 있다. Stream Collection.stream() // List로부터 스트림 생성 List list = ARrays.asList(1,2,3,4,5); Stream intStream = list.stream(); 배열 스트림 배열을 소스로하는 스트림을 생성하는 메서드로 Stream과 Arrays에 static 메서드로 정의되어 있다. 문자열 스트림 Stream srtSTream = Stream.of("a","b","c");// 가변인자 Stream srtSTream = Sream.of(n.. JVM/Java 2022. 3. 30. [Java] POI 엑셀 다운로드 시 Invalid char (/) found at index (6) in sheet name 에러 [Java] POI 엑셀 다운로드 시 Invalid char (/) found at index (6) in sheet name 에러 Java 엑셀 다운로드 구현하기 [Java] POI 라이브러리 사용 : 엑셀 다운로드 로직 구현하기 [Java] POI 라이브러리 사용 : 엑셀 다운로드 로직 구현하기 - 의존성 추가 Spring Boot 경우 build.gradle에 Gradle dependency 추가 compile group: 'org.apache.poi', name: 'poi', version: '3.13' Spring 경.. haenny.tistory.com Java에서 엑셀다운로드 로직을 구현한 뒤 실행을 했더니 다음과 같은 에러가 발생했다. java.lang.IllegalArgumentExcep.. JVM/Java 2022. 2. 15. [Java] Lombok 사용 시 @Data compileJava 오류 [Java] Lombok 사용 시 @Data compileJava 오류 > Task :compileJava D:\02.workspace\04.ws2022\GCBIS_H\src\main\java\kr\co\neighbor21\GCBIS_H\cmmn\vo\CmmnGridSet.java:23: warning: Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. @Data ^ 오류를 자세.. JVM/Java 2022. 2. 14. [Java] 윈도우 cmd 명령어 실행 : Java로 실행파일 실행시키기 응용 [Java] 윈도우 cmd 명령어 실행 : Java로 실행파일 실행시키기 응용 1. Java에서 cmd 명령어 실행 Java의 Runtime 클래스를 이용하여 cmd 명령어를 실행할 수 있다. Runtime.getRuntime().exec("cmd /c " + "cmd명령어"); 2. cmd 실행 결과 받기 Runtime.exec() 로 명령어를 호출하면 그 결과가 Process 객체로 리턴받을 수 있다. 다음과 같이 Process 객체로부터 결과를 읽을 수 있다. Process로부터 InputStreamReader를 가져와 문자열을 읽는다. String cmd = "cmd 명령어"; Process p = Runtime.getRuntime().exec("cmd /c " + cmd); BufferedRea.. JVM/Java 2022. 1. 12. 이전 1 2 3 4 다음 추천 글 728x90 반응형