프로그래밍 언어/JAVA
-
[JAVA] Map에서 key, value 꺼내기 (entrySet, keySet, Iterator)프로그래밍 언어/JAVA 2023. 7. 10. 14:53
Map에 값을 전체 출력하기 위해서는 entrySet(), keySet() 메서드를 사용하면 되는데 entrySet() 메서드는 key와 value의 값이 모두 필요한 경우 사용하고, keySet() 메서드는 key의 값만 필요한 경우 사용한다. 📑 1. Iterator 사용 1 - keySet() : key 출력 keySet은 HashMap에 저장된 모든 키가 저장된 Set을 반환한다. 반환된 값들을 iterator()를 이용해 Collection의 Iterator를 얻어서 반환한다. Iterator는 자바의 컬렉션 프레임워크에서 컬렉션에 저장되어 있는 요소들을 읽어오는 방법을 표준화한 것이다. package parser; import java.util.HashMap; import java.util.I..
-
[JAVA] LinkedList 개념, 사용법 알아보기프로그래밍 언어/JAVA 2023. 6. 16. 08:52
📑 LinkedList란? 연결 리스트(LinkedList)는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식의 자료구조이다. 데이터를 담고 있는 노드들이 연결되어 있고, 노드의 포인터가 이전 노드와 다음 노드와의 연결을 담당한다. Node는 LinkedList에 객체를 추가하거나 삭제하면 앞뒤 링크만 변경되고 나머지 링크는 변경되지 않는다. 중간에 데이터를 추가하거나 삭제하더라도 전체 인덱스가 한 칸씩 뒤로 밀리거나 당겨지는 일이 없기에 ArrayLst에 비해 데이터의 추가나 삭제가 용이하나, 인덱스가 없기에 특정 요소에 접근하기 위해서는 순차탐색이 필요하므로 탐색 속도가 떨어진다는 단점이 있다. 그러므로 탐색 또는 정렬을 자주하는 경우엔 배열을 사용하고, 데이터의 추가/삭제가 많은 경..
-
[JAVA] ArrayList 개념, 사용법 알아보기프로그래밍 언어/JAVA 2023. 6. 14. 09:58
📑 ArrayList란? ArrayList는 List 인터페이스를 상속받은 클래스로 크기가 가변적으로 변하는 선형리스트이다. 일반적인 배열과 같은 순차리스트이며 인덱스로 내부의 객체를 관리한다는 점등이 유사하지만 한번 생성되면 크기가 변하지 않는 배열과는 달리 ArrayList는 객체들이 추가되어 저장 용량(capacity)을 초과한다면 자동으로 부족한 크기만큼 저장 용량(capacity)이 늘어난다는 특징을 가지고 있다. 📑 ArrayList 사용법 package collection; import java.util.ArrayList; import java.util.Arrays; public class ArrayListEx { public static void main(String[] args) { Ar..
-
[JAVA] Integer.parseInt vs Integer.valueOf 비교하기프로그래밍 언어/JAVA 2023. 6. 13. 10:16
parseInt와 valueOf는 Integer라는 래퍼클래스(Wrapper 클래스가)가 가지고 있는 메서드들이다. 이 메서드들은 String을 int로 바꿀 수 있다는 공통점이 있는데, 차이점은 바로 반환값에 있다. Integer.valueOf("10")은 Integer 타입으로 반환하고, Integer.parseInt("10")은 int 타입으로 반환한다. Integer 타입은 기본형 타입(Primitive Type)인 int 형의 박싱(boxing)한 결과인데, 쉽게 말해 int형을 객체로 쓰기 위한 객체이며, 래퍼 클래스로 감싸고 있는 기본형 타입의 값이라고 볼 수 있다. Wrapper 클래스가 궁금하다면 아래 포스팅 참고! https://wonisdaily.tistory.com/255 [JAVA..
-
[JAVA] Wrapper Class, 래퍼클래스란? ( 박싱과 언박싱)프로그래밍 언어/JAVA 2023. 6. 13. 09:42
Int와 Integer에 차이에 대해서 궁금점은 한번씩은 다 가져봤으리라 생각한다. 그 차이를 알아보기 위해 Wrapper 클래스에대해 정리해보자. 📑 Wapper 클래스란? 프로그램에 따라 기본 타입의 데이터를 객체로 취급해야 하는 경우가 있다. 예를 들어, 메소드의 인수로 객체 타입만이 요구되면, 기본 데이터를 그대로 사용할 순 없다. 이때 기본 타입의 데이터를 먼저 객체로 변환 후 작업을 수행해야한다. 이렇게 8개의 기본 타입에 해당하는 데이터를 객체로 포장해 주는 클래스를 래퍼 클래스(Wrapper class)라고 한다. 래퍼 클래스는 각각의 타입에 해당하는 데이터를 인수로 전달받아, 해당 값을 가지는 객체로 만들어준다. 이러한 래퍼 클래스는 모두 java.lang 패키지에 포함되어 제공된다. 자..
-
[JAVA] repeat 메서드, for문 대신 사용하기 간편!프로그래밍 언어/JAVA 2023. 6. 1. 10:56
📑 Repeat 메서드 String 메서드 중 String 문자열을 파라미터의 주어진 횟수만큼 반복한다. 자바11에 새로 추가된 String 메서드이다. 파라미터를 0으로 지정하면 빈 문자열을 반환한다. 파라미터를 음수로 지정하면 IllegalArgumentExceptionthrow 에러를 반환한다. 파라미터를 1로 지정하면 문자열을 그대로 반환한다. 사용 예제를 살펴보자. 백준 알고리즘에 다음과 같은 문제가 있다. repeat을 몰랐을 땐 이중 for문을 사용하였다. package step3; import java.io.*; public class Q9_2438 { public static void main(String[] args) throws IOException { BufferedReader br..
-
[JAVA] BufferedReader와 BufferedWriter 사용법프로그래밍 언어/JAVA 2023. 5. 25. 10:41
https://www.acmicpc.net/problem/15552 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net 백준 15552번에 보면 아래와 같은 설명이 있다. 앞선 문제를 풀면서 Scanner 대신 BufferedReader를 많은 사람들이 사용하고 있기에 BufferedReader의 개념을 익히고 사용할 수 있었다. 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. Java를 사용하고 있다면, Scanner와 Syste..