Collections Framework💡Collections vs. Collection- Collections : util 클래스Collections.sort(list); - Collection : 인터페이스 Collections컬렉션을 위한 메서드(static)를 제공💡 유용한 static 메서드를 제공하는 클래스- Object : 객체- Arrays : 배열- Collections : 컬렉션 List* ArrayList연속적인 배열장점 : 구조가 간단하고 데이터를 읽는 데 걸리는 시간이(접근 시간, access time)이 짧다.단점 :- 크기를 변경할 수 없다.(크기를 변경해야 하는 경우 새로운 배열을 생성 후 데이터를 복사해야함.크기 변경을 피하기 위해 충분히 큰 배열을 생성하면..
공부/Java
Iterator :컬렉션에 저장된 요소들을 읽어오는 방법을 표준화한 것ListIterator : Iterator에 양방향 조회기능 추가(List를 구현한 경우만 사용가능)Enumeration : Iterator의 구버전 컬렉션들의 구조가 다 달라 읽어오는 방법도 다 다르지만, Iterator를 통해 표준화하여 읽어올 수 있게 한다. ex)List를 Set으로 변환하고 나서 읽어올 때, Iterator를 사용하면 읽어오는 코드를 바꾸지 않고 읽어올 수 있다. 메서드설명boolean hashNext()읽어 올 요소가 남아있는지 확인한다. 있으면 true, 없으면 false 반환Object next()다음 요소를 읽어온다. next()를 호출하기 전에 hashNext()를 호출해서 읽어올 요소가 있는지 확인..
DS vs. ADTADT(Abstract Data Tpye, 추상 데이터 타입)- 추상화- 데이터 타입을 정의만 하고 실제 구현에 대해선 논의 하지 않는다.- 정의와 구현을 분리하면 사용자는 굳이 어떻게 만들어 지는지를 몰라도 사용하는데 아무런 문제가 없다.- 사용자는 ADT에서 정의된 기능을 이옹 하기만 하면 되고 구현은 개발자가 알아서 하면 된다.- 기능 개선을 위해서 구현 방법이 바뀌어도 정의만 그대로 라면 기존 사용자는 아무런 변경없이 동일하게 이용이 가능하다 이런게 일반적인 추상화의 장점이다. DS(Data Structure, 자료 구조)내부 구현 예시자바에 비유하자면인터페이스 → ADT 클래스 → DS 참고링크https://www.youtube.com/watch?v=QcsQKgXemtA
Array 비슷한 용어 정리Arrays클래스java.util.Arrays 클래스는 배열을 다루기 위한 다양한 정적 메서드를 제공한다.이 클래스는 배열의 정렬, 검색, 비교 및 변환과 관련된 메서드를 포함하고 있다.주요 메서드:sort(): 배열을 정렬binarySearch(): 배열에서 이진 검색을 수행한다.equals(): 두 배열이 동일한지 비교한다.fill(): 배열을 특정 값으로 채운다.asList(): 배열을 List로 변환한다. int[] numbers = {5, 3, 8, 1};Arrays.sort(numbers);System.out.println(Arrays.toString(numbers)); // [1, 3, 5, 8] ArrayList 클래스java.util.ArrayList는 Lis..
Object 클래스 Obejct클래스에 속한 메소드는 총 11가지이며 메소드의 이름과 내용은 아래와 같습니다. int hashCode() : 현재 객체의 해쉬코드 값을 반환합니다. String toString() : 현재 객체의 문자열로된 표현값을 반환합니다. boolean equals (Object obj) : obj객체와 현재객체가 같은지 비교하여 결과를 반환합니다. (같으면 true, 다르면 false) final Class getClass( ) : 현재 객체의 클래스 정보를 담은 Class타입의 객체를 반환합니다. protected Object clone( ) : 현재 객체의 복사본을 생성후 반환합니다. (Cloneable 인터페이스를 구현한 클래스만 복사 가능함) final void notify..
접근제어자 public 은 접근할 수 없는 클래스가 없이 접근을 제한하지 않는다. protected은 같은 패키지만 허용하나, 상속을 받은 경우 다른 패키지에서도 사용 가능하다. default는 같은 패키지에서 사용 가능하다. private는 해당 클래스에서만 사용 가능하다. 참고링크 [JAVA] 접근제어자 public, protected, default, private
프로그램 오류 1. 컴파일 에러 컴파일 시에 발생하는 에러 📌 자바 컴파일러 1. 구문체크 2. 번역 3. 최저화 4. 생략된 구문 추가(ex. extens Object) 2. 런타임 에러 실행 시에 발생하는 에러 💡 Exception클래스들 : Exception클래스 + 자식 클래스 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외 💡 RuntimeException클래스들 :RuntimeException클래스 + 자식 클래스 프로그래머의 실수로 발생하는 예외 💡 체크드예외/언체크드예외 - 컴파일러로 체크된다. ● 체크드예외(checked) try-catch 필수 ● 언체크드예외(unchecked) try-catch 선택 ❓ 왜 언체크드예외는 try-catch가 선택인가? 개발자의 실수로 발생할 수..
"implements"는 인터페이스를 구현하는 데 사용되고, "extends"는 클래스 간의 상속 관계를 정의하는 데 사용된다. 클래스가 인터페이스를 구현할 때는 "implements"를 사용하고, 클래스가 다른 클래스를 확장할 때는 "extends"를 사용합니다. implements 클래스가 인터페이스를 구현할 때 사용된다. 인터페이스를 구현하는 클래스는 인터페이스에서 선언된 모든 메서드를 구현해야 한다. 자바와 같은 언어에서는 클래스가 여러 인터페이스를 구현할 수 있다. interface Animal { void makeSound(); } class Dog implements Animal { public void makeSound() { System.out.println("Woof"); } } ext..
인터페이스란? 추상메서드 집합(추상메서드만!!) 추상메서드, 상수, static메서드, 디폴트메서드 외에 허용 X interface 인터페이스이름 { (public static final) Type 상수이름 = 값; (public abstract) 메서드 이름 (매개변수목록); // 추상메서드 } 모든 멤버변수는 public static final 이고, 생략 가능 모든 메서드는 public abstract 이고, 생략 가능(단, static메서드와 디폴트 메서드는 예외) public은 항상 예외가 없어서 생략 가능 인터페이스 추상클래스 추상메서드 집합 (iv 가질 수 없다.) 일반클래스에 추상메서드를 가지고 있음 일부가 추상메서드이다. (생성자, iv, 인터페이스 메서드,,,) 기본 설계도(구현된 것이..
01. 메서드(method) 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것. 02. 메서드를 사용하는 이유? 높은 재사용성(reusability) : 만들어 놓은 메서드는 몇 번이고 호출 가능. 다른 프로그램에서도 사용 가능. 중복된 코드의 제거 : 같은 내용이 반복할 경우, 메서드로 만들어 메서드 호출로 대신함. 프로그램의 구조화 : 코드를 작업단위별로 나눠서 여러 개의 메서드에 담아 단순구조화. main메서드 간단해짐. 03. 메서드의 선언과 구현 반환타입 메서드이름 (타입 변수명, 타입 변수명, ...) -> 선언부 { -> 구현부 // 메서드 호출 시 수행될 코드 } # 반환타입(return type) 반환값(return)이 없는 경우, 'void'를 적는다. ( void : 아무 것도 없..