
자바의 자료구조이며 이 List들은 중복된 값을 가질수 있다. 컬렉션 프레임워크인 List의 인터페이스를 구현한 클래스다. 기본적으로 List 의 기능을 따르지만 각각 다른 기능을써서 다르게 불리는것이다. ArrayList 는 동적으로 배열의 값을 추가, 삭제 가능하며 자동으로 크기를 조절할수있다. LinkedList는 Node 란 것을 사용하여 item에 다음 노드의 주소를 붙여 사용한다. 둘의 차이는 기능으로 인한 성능 차이도 있어 코드로 예제를 첨부하였다.빅오표기법에 따라 어느부분에 뛰어난지 파악후에 적재적소에 써야할거같다.

자바의 초창기에 자료구조는 배열만 있었는데 추후 1.2 버전에서 컬렉션 프레임워크가 추가되었다.length 는 배열의 길이를 가져오고 size는 배열의 갯수를 가져온다둘의 차이는 정적과 동적의 차이라고 알고있다. 배열의 경우 값을 변경 추가 삭제 를 할수없어 길이만 반환하면 되지만컬렉션 같은경우 값의 추가 삭제가 가능하며 값의 갯수를 가지고 와야해서 size를 써서 갯수를 불러온다.

위 그래프가 나타내는건 연산 횟수 와 연산 증가량 이다. 정확한 속도가 아닌 얼마나 빠르고 얼마나 느린지 상대적으로 그래프화 한것 O(1) : 1번의 연산으로 수행한다. ( 예: 배열 인덱스 찾기)배열의 인덱스를 바로 찾을수있는 이유 ?예를들어 int 배열을 만들었을 경우 , int 는 4byte를 갖고있으니 byte를 계산해 해당 인덱스를 바로 찾을수있다 O(log n) : log n 만큼 연산 (예 : 이진 탐색 알고리즘은 입력 크기를 반씩 줄여가며 검색을 수행) O(n) : n번의 연산을 수행한다 ( 예 : 배열에서 주어진값 같은 값 찾기)인덱스 찾기와 달리 값을 찾는건 해당 배열의 칸마다 확인을 해야한다. O(nlog n) : n * log n 만큼 연산 (예 :보통 정렬 알고리즘이나 분할 ..
정의 abstract 키워드가 붙고 , 메소드 실행 내용인 중괄호{} 가 없다 . ex ) abstract 리턴타입 메소드명(매개변수, ); 오버라이딩 중요 하나 선택의 자유가있다. 추상메서드에는 abstract 가들어간 클래스가 꼭 필요하다. 추상메서드는 선언부만 존재 body(실행부)가 없다. {} 대신에 ;을 작성해야 한다. 추상클래스를 상속받은 하위클래스에서 반드시 오버라이딩 해야한다.{} 를 작성해야한다. 추상클래스는 외부에서 추상클래스의 객체를 new연산자를 이용하지못한다. 추상클래스는 외부에서 추상클래스의 객체를 new 연산자를 이용하지 못한다. // 자식클래스를 통해서 (추상클래스의 객체를) 생성한다.
1. java.util 패키지 ArrayList: 동적으로 크기가 조절되는 배열을 구현한 클래스입니다. 요소의 삽입, 삭제, 검색 등이 용이합니다. LinkedList: 연결 리스트를 구현한 클래스로, 요소의 추가/삭제가 빈번한 경우에 유용합니다. HashMap: 키-값 쌍을 저장하는 해시 맵 클래스입니다. 해시 기반으로 효율적인 검색 및 삽입이 가능합니다. HashSet: 중복을 허용하지 않는 요소들의 집합을 나타내는 클래스로, 해시 기반의 내부 구조를 가집니다. Collections: 유용한 정적 메서드를 제공하여 컬렉션에 대한 정렬, 검색, 변환 등을 지원합니다. 2. java.io 패키지 File: 파일과 디렉토리를 나타내는 클래스로, 파일 경로나 속성을 관리할 수 있습니다. FileInputSt..
배열 관련 메서드 1. Array 클래스 Arrays.toString(arr): 배열의 내용을 문자열로 반환합니다. Arrays.copyOf(original, length): 배열을 복사하여 새로운 배열을 생성합니다. Arrays.fill(arr, value): 배열을 특정 값으로 채웁니다. 2. Array 클래스( JAVA 8이상) Arrays.stream(arr): 배열을 스트림으로 변환합니다. Arrays.parallelPrefix(arr, op): 배열의 각 요소에 병렬로 연산을 수행하여 중간 결과를 저장합니다. Arrays.setAll(arr, generator): 배열의 각 요소에 제공된 함수를 사용하여 값을 정수 관련 메서드 1. integer 클래스 Integer.parseInt(str):..
1. 문자열 관련 메서드 charAt(int index): 문자열에서 특정 인덱스의 문자를 반환합니다. substring(int beginIndex, int endIndex): 문자열의 부분 문자열을 반환합니다. indexOf(String str): 문자열에서 특정 문자열의 위치를 반환합니다. replaceAll(String regex, String replacement): 문자열에서 특정 패턴을 다른 2. 컬렉션 관련 메서드 add(E element): 컬렉션에 요소를 추가합니다. remove(Object obj): 컬렉션에서 특정 요소를 삭제합니다. size(): 컬렉션의 크기를 반환합니다. contains(Object obj): 컬렉션에 특정 요소가 포함되어 있는지 확인합니다. 3. 파일 및 입출력..
인스턴스 멤버 객체마다 가지고 있는 멤버, 객체(인스턴스)를 생성한후 사용할수 있는 필드와 메소드를 말하는데 이들을 각각 인스턴스 필드, 인스턴스 메소드라고 부릅니다. 정적(static) 멤버 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드. 정적 요소는 클래스 이름으로 하는것이 좋습니다. 정적 메소드 선언시 주의할점 정적 메소드 내부에 인스턴스 필드나 인스턴스 메소드를 사용할수 없다.또한 객체 자신의 참조인 this 키워드 사용불가 싱글톤 단 하나의 객체만 만들도록 보장해야 하는 경우, 단하나만 생성한다고 해서 이 객체를 싱글톤 이라고합니다. 싱글톤을 만들려면 외부에서 new 연산자로 생성자를 호출할 수 없도록 막아야 합니다. private 접근제한자를 붙여 외부에서 생성자..