반응형

자료구조 9

스트림(Stream) 요소 처리

스트림Java 8 부터 컬렉션 및 배열의 요소를 반복 처리하기 위해 스트림 사용요소들이 하나씩 흘러가면서 처리된다는 의미.List 컬렉션의 stream() 메서드로 Stream 객체를 얻고, forEach() 메서드로 요소를 어떻게 처리할지를 람다식으로 제공.스트림과 Iterator의 차이점내부 반복자이므로 처리속도 빠르고 병렬처리에 효율적람다식으로 다양한 요소 처리를 정의중간 처리와 최종 처리를 수행하도록 파이프 라인을 형성내부 반복자요초 처리 방법을 컬렉션 내부로 주입시켜서 요소를 반복 처리개발자 코드에서 제공한 데이터 처리 코드(람다식)을 가지고 컬렉션 내부에서 요소를 반복 처리내부 반복자는 멀티 코어 CPU를 최대한 활용하기 위해 요소들을 분배시켜 병렬 작업 가능스트림의 파이프 라인컬렉션의 오리지..

자료구조 2024.07.17

자바 컬렉션 프레임워크

컬렉션 프레임워크널리 알려진 자료구조를 바탕으로 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 관련 인터페이스와 클래스들을 포함시켜 놓은 java.util 패키지주요 인터페이스 : List, Set, mapList 컬렉션객체를 인덱스로 관리하기 때문에 객체를 저장하면 인덱스가 부여되고 인덱스로 객체를 검색, 삭제할 수 있는 기능을 제공.ArrayListArrayList에 객체를 추가하면 내부 배열에 객체가 저장되고 제한 없이 객체를 추가할 수 있음.객체의 번지를 저장. 동일한 객체를 중복 저장 시 동일한 번지가 저장. (null 저장 가능)ArrayList 컬렉션에 객체를 추가 시 인덱스 0번부터 차례대로 저장.특정 인덱스의 객체를 제거하거나 삽입하면 전체가 앞/뒤로 1씩 당겨지거나 밀림.빈번한 객..

자료구조 2024.07.10

자바 스트림(Stream)이란?

많은 알고리즘 문제와 코딩 테스트를 풀다 보면, 거의 항상 "입력은 여러 테스트 케이스로 이루어져 있다" 혹은 "입력으로 무엇 무엇이 들어온다"라는 말과 함께 데이터를 사용자로부터 받는 경우가 대다수입니다. 이때 저희는 파일이나 콘솔을 활용하여 입출력을 하지만, 실제 내부에서는 스트림(Stream)이라는 흐름을 통해 다뤄집니다. 이 흐름을 통해 입출력을 받고 생성한 데이터를 기반으로 가공하여 결과를 도출해냅니다. 그러면 이 스트림(Stream)이라는 것이 과연 무엇이냐? 지금부터 한번 알아보겠습니다🤗 스트림(Stream)이란? -> Stream : 개울, 시내, (액체&기체의)줄기실제의 입력이나 출력이 표현된 데이터의 흐름을 의미.운영체제에 의해 생성되는 가상의 연결 고리(중간 매개자 역할)를 의미.J..

자료구조 2024.07.03

Comparable VS Comparator 의 이해

요새 정렬에 관련된 문제를 접해보고 있고, 제가 아직은 많이 써보지 못한 인터페이스에 대해 오늘은 알려드릴려고 합니다. 그것은 바로 Comparable과 Comparator입니다. Comparable과 Comparator는 둘 다 Java에서 객체를 정렬하는 데 사용되는 인터페이스입니다. 이 두 인터페이스는 비슷한 목적을 가지고 있지만, 사용 방법과 용도가 다릅니다. 각각의 인터페이스에 대해 자세히 설명하고, 사용 방법 및 차이점을 비교해 보겠습니다. Comparable 인터페이스Comparable 인터페이스는 객체 자신이 다른 객체와 비교할 수 있도록 함. 주로 객체의 기본 정렬 기준을 정의할 때 사용. 사용 방법Comparable 인터페이스를 구현할 클래스에 implements Comparable를 ..

자료구조 2024.06.30

ConcurrentHashMap VS ConcurrentSkipListMap 이란?

이전에 authprovider랑 provider에 대해서 작성한 글과 원래는 같이 작성하려고 하였지만, 분량과 가독성을 위해 따로 글을 올리게 되었습니다.  ConcurrentHashMap & ConcurrentSkipListMap 은 제가 알고 있는 hashMap과 skipList의 단어를 포함하고 있어 찾아보게 되었습니다. 혹시나 HashMap에 대해 궁금하신 분은 아래 글을 참고하시면 좋겠습니다!!https://zoohwan99.tistory.com/17 HashMap이란?이번 글에서는 제가 백준과 프로그래머스에서 알고리즘을 풀며 자주 나오는 HashMap에 대해서 알려드리는 글을 써보려고 합니다.이 자료구조는 많은 코딩테스트에도 등장하기도 하니, 많은 분들zoohwan99.tistory.com C..

자료구조 2024.06.19

AuthProvider VS Provider 이란?

Map에 관련하여 https://docs.oracle.com/en/java/javase/17/docs/api/에서 공부를 하던 와중에 아래 구현 클래스들에 대해 궁금증이 생겨 이렇게 글을 작성해보았습니다. 저 같은 경우에 한번도 보지 못했던 것들이라 더욱 궁금증이 생겼습니다. 그러면 아래 글에서 자세한 내용 살펴보겠습니다. AuthProvider이란?AuthProvider는 Java의 javax.security.auth.spi 패키지에 포함된 추상 클래스입니다. 이 클래스는 인증 서비스 제공자의 기본 클래스 역할을 합니다.목적 : AuthProvider는 특정 인증 메커니즘을 구현하기 위해 사용됨. 예를 들어, 사용자 이름과 비밀번호 기반의 인증, 인증 토큰 기반의 인증 등을 구현할 수 있음.메서드 :l..

자료구조 2024.06.19

Map이란?

오늘은 Map이라는 인터페이스에 대해서 설명하는 글을 써보도록 하겠습니다. 제가 여태까지 알고리즘을 풀며, 가장(?) 재밌게 그리고 자주 풀어봤다고 느낀 것이 바로 map을 활용한 문제였던 것 같습니다. 하지만 정작 자세한 내용을 알지는 않고 두루뭉술하게 알고 있다고 생각해서 공부하게 되었습니다. 그러면 바로 글 시작해보도록 하겠습니다. Map이란?자바 컬렉션 프레임워크에서 제공하는 인터페이스."키 - 값" 쌍으로 데이터를 관리하는 자료구조를 표현.대표적인 구현체 : HashMap, TreeMap, LinkedHashMap etc주요 특징Key - Value : Map은 각 요소가 하나의 키와 그에 대응하는 값으로 구성. Key는 중복될 수 없으며(unique), Value는 중복될 수 있음.인터페이스 ..

자료구조 2024.06.19

HashSet이란?

이번 글에서는 제가 백준과 프로그래머스에서 알고리즘을 풀며 자주 나오는 HashSet에 대해서 알려드리는 글을 써보려고 합니다.이 자료구조는 많은 코딩테스트에도 등장하기도 하니, 많은 분들도 학습하셔서 완벽히 자기 자신의 것으로 만들어가는 시간 가지셨으면 좋겠습니다. HashSet이란?Java에서 제공하는 데이터 구조 중 하나로, 중복된 요소를 허용하지 않고 순서를 보장하지 않는 컬렉션.HashSet의 장점?중복 요소 제거 : HashSet은 내부적으로 해시 테이블을 사용하여 요소들을 저장하여, 동일한 요소를 중복해서 추가할 수 없음. 이미 존재하는 요소를 추가하거나 삽입하는 경우 무시됨.빠른 검색 속도 : HashSet은 해시 테이블 기반으로 하여 평균적으로O(1)의 시간복잡도로 요소에 접그할 수 있음..

자료구조 2024.06.17

HashMap이란?

이번 글에서는 제가 백준과 프로그래머스에서 알고리즘을 풀며 자주 나오는 HashMap에 대해서 알려드리는 글을 써보려고 합니다.이 자료구조는 많은 코딩테스트에도 등장하기도 하니, 많은 분들도 학습하셔서 완벽히 자기 자신의 것으로 만들어가는 시간 가지셨으면 좋겠습니다. HashMap이란?Java에서 제공하는 데이터 구조 중 하나로, Key - Value 쌍을 저장하는 자료구조.주로 검색, 삽입, 삭제, 업데이트 연산을 빠르게 수행할 수 있음.HashMap의 장점?Key - Value 구조 : 각 요소는 Key와 Value로 구성되어 있음. 또한, Key는 중복될 수 없고, Value는 중복될 수 있음.빠른 검색 속도 : HashMap은 해시함수를 사용하여 요소를 저장하고 검색하기 때문에, 평균적으로 O(1..

자료구조 2024.06.17
반응형