반응형

JAVA 13

Java Stream anyMatch(), allMatch(), noneMatch() 완벽 정리

안녕하세요!이번 포스팅에서는 Java 8 Stream API에서 제공하는 anyMatch(), allMatch(), noneMatch() 메서드에 대해 자세히 알아보겠습니다.이 메서드들은 리스트(List), 집합(Set) 등의 컬렉션에서 특정 조건을 만족하는 요소가 있는지 확인하는 데 유용하게 사용됩니다.하지만 동작 방식이 비슷해서 헷갈리기 쉬운데요. 이번 글을 통해 공통점과 차이점, 그리고 실행 과정을 완벽하게 이해해 봅시다!   1. anyMatch(), allMatch(), noneMatch() 개념 정리1) anyMatch()리스트에서 하나라도 조건을 만족하면 true 반환 (즉시 종료)anyMatch()는 스트림 내 요소 중 하나라도 주어진 조건을 만족하면 true를 반환하고, 즉시 실행을 종료..

JAVA 2025.03.17

Java 컬렉션 프레임워크 정리 – ArrayList, HashSet, HashMap 비교

Java를 배우다 보면 데이터를 효율적으로 저장하고 관리하는 방법을 고민하게 된다.배열을 쓰기엔 불편하고, 다양한 데이터를 다루려면 더 나은 방법이 필요하다.이럴 때 사용하는 것이 바로 **컬렉션 프레임워크(Collection Framework)**다.컬렉션 프레임워크는 크게 List, Set, Map 인터페이스로 나뉘며, 대표적인 구현 클래스는 다음과 같다. ListArrayList, LinkedList순서 O, 중복 허용SetHashSet, TreeSet순서 X, 중복 불가MapHashMap, TreeMap키-값(Key-Value) 저장 키 값 중복X 가장 많이 사용하는 ArrayList, HashSet, HashMap을 코드와 함께 비교해보자.1. ArrayList – 순서가 있는 리스트 (중복 허..

JAVA 2025.03.07

[JDK환경변수] JAVA 설정 - 윈도우 환경변수 한줄로 나올 때

프로그래밍 공부를 하다보면 환경변수를 만져야 할 때가 종종 있다.그런데 어느순간 환경변수가 한줄로 나올 때가 있는데,이렇게 떠버리면 어떤 값이 있는지 확인하는 것도 불편하고 새로운 값을 추가할 때도 불편하다.그래서 인터넷 여기저기 뒤져보다가 다행히 여러줄로 나오도록 바꿀 수 있었다.해결방법간단하다 변수 값 맨 앞에 아래 값을 추가해주자%SystemRoot%\system32;그리고 확인을 누르고 다시 path변수를 더블클릭 해보면 출처 : 참고한 포스팅

JAVA 2025.02.26

[JAVA Stream API] 컬렉션 프레임워크에 적용

Java의 Stream API와 람다식의 조합은 리스트나 컬렉션을 더 쉽게 다루기 위해 도입되었습니다. 익숙해지면 데이터를 필터링하거나 변환, 수집하는 등의 작업을 간결하게 처리할 수 있습니다. 아래에 기본 구조와 함께 자주 쓰이는 연산을 소개해 볼게요.1. Stream의 기본 구조Stream API는 리스트, 배열 등 컬렉션 데이터를 일련의 연산으로 처리할 수 있도록 도와줍니다. .stream()을 호출하면, 해당 리스트는 스트림이 되어 여러 단계로 연산이 가능해집니다. 일반적인 구조는 다음과 같습니다:list.stream() .중간 연산1().중간 연산2()... .최종 연산(); 중간 연산: filter, map, sorted 등 데이터를 변환하거나 필터링합니다.최종 연산:..

JAVA 2024.11.14

[JAVA] Stream 정리 [Stream, Map, Filtering, Sorted, Collect]

Stream: 자바8부터 추가된 기능입니다.기존에 배열의 원소, 혹은 Collection을 가공할 때는 forEach(), 혹은 for문을 통해 하나씩 가공을 진행했지만, Stream을 사용하면 람다함수형식을 통하여 깔끔하게 한번에 가공할 수 있게 되었습니다.가공하는 방식에는 Map, Filter, Sorted 등이 존재합니다. 1. Stream 생성[콜렉션 -> 스트림]List, Set과 같이 Collection 인터페이스를 구현한 객체는 .stream()을 통해서 변경가능하다.// List로부터 스트림을 생성List list = Arrays.asList("a", "b", "c");Stream listStream = list.stream(); [배열 -> 스트림]Stream의 of() 메소드, 혹은 A..

JAVA 2024.09.05

[Java] Random보단 SecureRandom 를 사용하자.

Random과 SecureRandom의 차이점1. Random일반적인 난수 생성기로, 의사 난수(pseudo-random number)를 생성한다.내부적으로 선형 합동 생성기(Linear Congruential Generator, LCG) 알고리즘을 사용하여 난수를 생성하며, 빠른 속도를 제공한다.그러나 예측 가능한 시드(seed) 값을 기반으로 난수를 생성하므로, 보안적으로 안전하지 않다.예를 들어, 특정 시드 값이 주어지면 항상 동일한 난수 시퀀스가 생성된다.2. SecureRandom**암호학적으로 안전한 난수 생성기(CSPRNG, Cryptographically Secure Pseudo-Random Number Generator)**이다.내부적으로 SHA1PRNG, NativePRNG, DRBG ..

JAVA 2023.04.04

[JAVA] 9. 다형성 / 객체지향적 이해, 다형성과 클래스, 다형성과 인터페이스

Chapter 9. 다형성 (Polymorphism) 다형성의 사전적 정의는 같은 종의 생물이지만 모습이나 특징이 고유한 특징이 다양한 성질을 의미한다. 단어의 뜻부터 어려운 이 다형성이 객체지향개념의 중요한 특징 중 하나이다. 다형성 여러 가지 형태를 가질 수 있는 능력을 의미하며, 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함을 구현하는데 사용한다. 좀 더 구체적으로는 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였다는 것이다. 코드를 통해 이해하는게 더 빠를 것 같다. class A { public String x() { return "x"; } } class B extends A // class A를 상속받고 있는 class B { public..

JAVA 2022.05.21

JAVA에서의 메모리 관리 (Heap, Stack, Static )

JAVA에서의 메모리 영역은 크게 Heap, Stack, Static 영역으로 나뉠 수 있다. Static 영역 하나의 JAVA 파일(Class)은 크게 필드(field), 생성자(constructor), 메소드(method)로 구성된다. 그 중 필드 부분에서 선언된 변수(전역변수)와 static키워드가 붙은 자료형 혹은 메소드는 Static 영역에 데이터를 저장한다. Static 영역의 데이터는 프로그램의 시작부터 종료가 될 때까지 메모리에 남아있게 된다. 다르게 말하면 전역변수가 프로그램이 종료될 때까지 어디서든 사용이 가능한 이유이기도 하다. 따라서 전역변수를 무분별하게 많이 사용하다 보면 메모리가 부족할 우려가 있어 필요한 변수만 사용할 필요가 있다. Stack 영역 https://dzone.co..

JAVA 2022.05.21

[JAVA/자바] 메모리 구조(static, stack, heap)

이번 글은 자바(JAVA)를 사용하는 입장에서 알아야 할 메모리 구조 및 특징에 대해서 알아보려고 한다. 프로그램을 구동하기 위해서 운영체제가 메모리(RAM)에 데이터 및 명령어를 저장할 공간을 할당하여 준다. 메모리는 컴퓨터에게 있어 가장 중요한 자산이고 사용할 수 있는 공간이 한정되어 있다. 이러한 것을 어떻게 관리하느냐에 따라서 프로그램의 성능(속도 등)이 좌우된다. 따라서 메모리를 효율적으로 사용하기 위해서는 메모리의 구성과 특징에 대해서 이해할 필요가 있다. 메모리의 공간은 크게 Static(스태틱) 영역, Stack(스택) 영역, Heap(힙) 영역으로 구분되고 데이터타입(자료형)에 따라서 해당 공간에 할당된다.(기계어 관련 영역은 제외) 그러면 메모리의 종류 및 특징에 대해서 하나씩 알아보도..

JAVA 2022.05.01

자바(JAVA) super & super()

super & super() 1. super super는 자식 클래스가 부모 클래스로부터 상속받은 멤버를 참조할 때 사용하는 참조 변수입니다. 클래스 내의 멤버변수와 지역변수의 이름이 같을 경우 구분을 위해 this를 사용하듯이 부모 클래스와 자식 클래스의 멤버의 이름이 같을 경우 super를 사용합니다. this와 super는 인스턴스의 주소값을 저장하는데 static 메서드(클래스 메서드)와는 무관하게 사용됩니다. 다음 예제 코드를 통해 super에 대해 확인해보겠습니다. class JavaApp { public static void main(String[] args) { Child child = new Child(); child.childMethod(); } } class Parent { int x..

JAVA 2022.04.30
반응형