본문 바로가기

Back-End93

[JAVA] 시스템과 파일 입출력(Java.io) - Input, Output, Stream, Reader, Writer, File Stream 의 개념 stream이란 데이터를 운반하는데 사용되는 연결 통로 자바에서 입출력을 수행하려면 스트림이 필요하다. 스트림을 통해 데이터가 입력(inputStream)이 되고 출력(OutputStream)이 된다. inputStream: 입력장치로부터 자바 프로그램으로 데이터를 전달하는 소프트웨어 모듈 outputStream: 자바 프로그램에서 출력 장치로 데이터를 보내는 소프트웨어 모듈 자바 입출력 스트림의 특징 - 단방향 : 한쪽 방향으로만 입력되고 출력이 됨 - FIFO(First In First Out) : 먼저 입력된 것이 먼저 출력이 됨. - 스트림은 바이트(byte)단위로 데이터를 전송한다 위와 같이 여러 종류의 입출력 스트림이 있으며, 어떠한 대상에 대해서 작업을 할 것인지 그리고.. 2021. 9. 17.
[JAVA] 컬렉션 프레임워크(Collection Framework) - Map * Map 계열의 컬렉션 프레임워크의 특징 - key와 value를 한쌍으로 해서 데이터를 저장하고, 검색하는 기능을 제공함. - key는 중복 불가, value는 중복 가능. - Map 인터페이스의 자식클래스로 구현 ==> HashMap(O), HashTable(O), Properties(가끔), TreeMap(거의X) 2021. 9. 17.
[JAVA] 컬렉션 프레임워크(Collection Framework) - Set * Set 계열의 컬렉션 프레임워크 특징 - 자료의 순서가 없다(정렬 기능 없음. - index가 없다). - 중복 데이터 허용 불가. - Set 인터페이스의 자식클래스를 이용하여 구현. ==> HashSet(0), TreeSet (X) 2021. 9. 17.
[JAVA] 컬렉션 프레임워크(Collection Framework) - Stack, Queue * Stack 클래스(자료 구조) 후입선출(LIFO : Last In First Out) 구조 => 제일 나중에 들어온 데이터가 호출 시 제일 먼저 빠져나감 선언은 아래와 같이 할 수 있다. Stack stack = new Stack(); // Element에는 Integer과 String이 올 수 있다. Stack stack = new Stack(); //int형 스택 선언 Stack stack = new Stack(); //char형 스택 선언 push(데이터) stack에 저장시키는 메소드 데이터가 위로 쌓이듯이 저장된다. peek() stack에 저장된 데이터를 가져오는 메소드 => stack의 맨 위(마지막)에 입력된 데이터를 가져오는 메소드 가져온 후, 데이터를 stack에서 제거하지 않음 즉.. 2021. 9. 17.
[Java] 컬렉션 프레임워크_LinkedList LinkedList 연결 리스트(LinkedList)는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식의 자료구조 데이터를 담고 있는 노드들이 연결되어 있고, 노드의 포인터가 이전 노드와 다음 노드와의 연결을 담당한다. Node는 LinkedList에 객체를 추가하거나 삭제하면 앞뒤 링크만 변경되고 나머지 링크는 변경되지 않는다. 중간에 데이터를 추가나 삭제하더라도 전체의 인덱스가 한 칸씩 뒤로 밀리거나 당겨지는 일이 없기에 ArrayList에 비해서 데이터의 추가나 삭제가 용이하나, 인덱스가 없기에 특정 요소에 접근하기 위해서는 순차 탐색이 필요로 하여 탐색 속도가 떨어진다는 단점이 있습니다. 그러므로 탐색 또는 정렬을 자주 하는 경우엔 배열을 사용하고 데이터의 추가/삭제가 많은 경우 .. 2021. 9. 17.
[JAVA] 컬렉션 프레임워크 개념과 ArrayList 컬렉션 프레임워크 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미 배열을 사용하다 보면 여러가지 비효율적인 문제가 생긴다. 가장 큰 문제점은 크기가 고정적이라는 것이다. 배열의 크기는 생성할 때 결정되며, 그 크기를 넘어가게 되면 더이상 데이터를 저장할 수 없다. 또 데이터를 삭제하면 해당 인덱스의 데이터는 비어있어 메모리가 낭비되는 등 여러 문제점들이 발생한다. 그렇기에 자바는 배열의 이러한 문제점을 해결하기 위해, 널리 알려져 있는 자료구조를 바탕으로 객체나 데이터들을 효율적으로 관리(추가, 삭제, 검색, 저장)할 수 있는 자료구조들을 만들어 놓았다. 이러한 자료구조들이 있는 라이브러리를 컬렉션 프레임워크라고 한다. (대표적으로는 List, Set, Ma.. 2021. 9. 17.