Java
-
[Java] C++ pair 같은 Map.Entry 사용하기Java 2024. 2. 17. 00:06
C++의 pair와 make_pair도 자바에 있다 중요한건 make_pair할때는 AbstractMap.SimpleEntry를 쓴다는거고그냥 pair객체를 정의할때는 Map.Entry를 쓴다는거임 // pair 객체 저장 listArrayList> list = new ArrayList();// make_pairlist.add(new AbstractMap.SimpleEntry(s,e));// Map.Entry 정렬Collections.sort(list, new Comp()); Map.Entry 정렬기준 예시class Comp implements Comparator>{ @Override public int compare(Map.Entry o1, Map.Entry o2) { if(o..
-
[Java] Vector vs ArrayList vs LinkedListJava 2024. 2. 6. 22:28
결론은 자바에서는 vector는 절대 쓰면 안된다그냥 ArrayList 냐 LinkedList냐 둘 중 하나인데 만약 삽입 삭제가 많은 경우이면 삽입 삭제가 O(1)인 LinkedList를 쓰고 검색 및 자료조작이 많은 경우이면direct access가 가능하여 검색 성능이 O(1)인 ArrayList를 쓰자 [Vector] 필요에 따라 크기를 동적으로 조절할 수 있는 동적배열을 구현(c++과 동일)c++ vector와 마찬가지로 index를 이용하여 direct-access 가능동기화(thread-safe) 되어있으며 한번에 하나의 스레드만 벡터의 메소드를 호출 할 수 있음멀티쓰레드 환경이 아닐 때 Vector 클래스를 사용하게 되면 성능이 떨어지게 된다는 얘기다 cf) java로 ps할때 vector..
-
[Java] StringBuilderJava 2024. 2. 6. 21:00
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer tokenizer = new StringTokenizer(br.readLine()); StringBuilder sb = new StringBuilder(); while(tokenizer.hasMoreTokens()){ sb.append(tokenizer.nextToken()).append("\n"); } System.out.print(sb); 자바에서 문자열하면 string을 쓰는데 string은 소위 불변객체이다. 즉 str1 + str2를 하면 새로운 string 객체를 계속해서 만들어야함 따라서 string 객체들끼리 더하는 행위는 ㅈㄴ 비..
-
[Java] StringTokenizerJava 2024. 1. 27. 17:19
생성자로 구분자(delimeter) 설정가능 default는 띄어쓰기 StringTokenizer tokenizer = new StringTokenizer(br.readLine(), "?"); hasMoreTokens nextToken countTokens BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer tokenizer = new StringTokenizer(br.readLine()); StringBuilder sb = new StringBuilder(); while(tokenizer.hasMoreTokens()){ sb.append(tokenizer.nextToken()).append("\..
-
[Java] BufferedReaderJava 2024. 1. 27. 16:56
백준 풀때 자바로 입출력 시간초과를 방지하려면 Scanner 대신 BufferedReader를 써야함 그리고 ps할때는 readLine이랑 close 밖에 안씀 그래서 그냥 readLine이랑 공백기준으로 자르고 형변환하는거만 알면 됨 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br.readLine(); 1. enter 만으로 경계를 인식함 그래서 공백으로 나눠야하는경우 StringTokenizer로 직접 나눠줘야함 2. 항상 String으로 받음 그래서 형변환 직접 해줘야함 https://st-lab.tistory.com/41 JAVA [자바] - 입력 뜯어보기 [Scanner, InputStream, Buffer..
-
[Java] 자바 설치Java 2024. 1. 4. 15:16
Oracle JDK 17은 Oracle에서 배포하는 JDK이고, OpenJDK 등 다른 배포판도 있어. JDK = (JRE + JVM) + 개발 도구즉, JDK를 설치하면 JRE와 JVM이 자동으로 포함되어 있어.자바 17 코드 실행하려면 JDK 17 (Oracle/OpenJDK 등) 설치하면 되고, 따로 JRE 설치할 필요 없어! 참고로 위와 같이 JDK가 JRE와 JVM을 포함하고 있기 때문에,자바를 설치한다고 하면 JDK를 설치하면 된다. Java SE Development Kit 이란 Java Standard Edition 개발자 키드라는 것이다.즉 표준, 가장 기본적인 Java 플랫폼이라는 것이다. 🖥️ 2. Windows x64 Installer (.exe 실행 파일)✅ JDK를 자동으로 ..