Set ( 인터페이스 ) 집합을 표현한 인터페이스, 자식 클래스 위에 표기 자식 클래스들 HashSet LinkedHashSet TreeSet 등 ( 특징 ) List vs Set 구분 순서(인덱스) 중복 Set 없음 허용되지 않음 List 있음 허용됨
분류 전체보기
LinkedList ( 특징 ) ( 1 ) LinkedList vs ArrayList 구분 순차 추가 / 삭제 중간에 추가 / 삭제 ArrayList 빠름 느림 LinkedList 느림 빠름 ( 참조 ) 반복문으로 10000 까지 인덱스 0에 계속해서 값을 넣었을때 ( = 중간에 추가 ) 시간 단위 ( : System.nanoTime() ) 정의 List list = new LinkedList(); 나머지 List 함수들은 ArrayList 또는 Vector 참조 https://tinylittlelife.tistory.com/124
Vector ( 특징 ) ( 1 ) 멀티 쓰레드 환경에서 사용하는 자료구조 ( 2 ) 병렬처리 장점 : 속도 향상 단점 : 코딩 복잡도 증가 , 동기화 문제 등 ( 3 ) ArrayList 와 Vector 의 속도 비교 (일반적인 환경) ArrayList > Vector 정의 다형성 사용 List 객체변수 = new Vector(); 대표적인 함수들 add() 함수 추가 객체변수.add( Object ) get() 함수 가져오기 객체변수.get( index ) set() 함수 수정하기 객체변수.set( index , Object ) remove() 함수 삭제하기 객체변수.remove( Object ) 객체변수.remove( index )
toString() ( 특징 ) ( 1 ) 재정의 해놓으면 좋음 ... ㅋ..? ( 2 ) 편의성 List 변수를 system.out.prinln 할때 정의 해놓으면 실행 결과를 편의성 있게 볼수 있음 오버라이딩 Intelli J 자동 생성 @Override public String toString() { return "Board{" + "subject='" + subject + '\'' + ", content='" + content + '\'' + ", writer='" + writer + '\'' + '}'; }
.hashCode ♠\ 참조 /♠ ( 특징 ) ( 1 ) 객체를 식별하는 유일한 정수값 ( 번호 중복 없음 ) ( 2 ) HashMap , HashSet 자료구조에서 내부적으로 해쉬코드를 사용함 ( 객체들을 비교할때 사용 ) ( 3 ) 기본 hashCode는 객체간의 비교에서 오류를 일으키므로 재정의 필요 오버라이딩 2개의 객체를 생성해서 비교시 id 속성의 해쉬코드가 2개 모두 같아짐 public class Member { // Attribute public String id; public Member(String id) { this.id = id; } @Override public int hashCode() { return Objects.hash(id); // 객체 비교 (속성을 비교) }..
.equals() ♠\ 참조 /♠ ( 특징 ) ( 1 ) 두 개의 객체가 같다라는 의미는 속성이 같다라는 의미임 ( 2 ) String 객체에서의 비교는? .equals() 함수가 재정의되어 있음 따라서 Object 객체를 재정의하여 사용하자! 오버라이딩 intelli J 에서 자동 생성해줌 public class Member { public String id; public Member(String id) { this.id = id; } // 여기 부분 @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Member)) return false; Member member = (Membe..
Object 클래스 자바 언어의 최고 조상 객체 대표 함수 .equals() .hasCode() .toString() 등 따라서 자바의 모든 객체(클래스)는 Object 클래스를 상속받고 있다 단, extends 키워드는 없어도 상속이 되어 있음
♠\ 참조 /♠ 제네릭 객체안의 자료의 타입(자료형)을 제한할 목적으로 사용함 ArrayList 정의 List 변수명 = new ArrayList(); // 또는 ArrayList 변수명 = new ArrayList(); add() 함수 객체변수.add(값) // 또는 인덱스 안에 넣기 객체변수.add(index , 값) ♠\ 참조 /♠ (특징 ) ( 1 ) 변수명.add( index , 값 ) 인덱스 위치에 값을 추가 따라서 원래 index 있던 값은 index + 1 에 값이 들어감 size() 함수 배열의 크기를 가져옴 객체변수.size() get() 함수 저장된 데이터 가져오기 객체변수.get(index) set() 함수 자료 수정하기 객체변수.set(index ,..
List List 1. 배열을 개선한 자료구조 2. 크기가 자동 증가함 ArrayList LinkedList Vector ArrayList 1. 순자적으로 추가 / 삭제시 속도가 빠름 2. 중간에 추가 / 삭제시 속도 저하 LinkedList 1. 중간에 추가 / 삭제시 속도 향상 (주소값을 참조 하기 때문) 2. 순차적일때 속도 저하 Vector 멀티 쓰레드 환경에서 사용하는 자료구조
인터페이스 정의 public interface 인터페이스명 { } 속성(Attribute) 정적(공유) 상수 명명법 : 모두 대문자 자료형 변수(대문자) 함수(Method) 추상함수(실행불럭 {} 없음) abstract (추상) 생략 가능 접근제한자 리턴자료형 함수명(); 상속 클래스 다중 상속 가능 public class 클래스명 implements 인터페이스명1 , 인터페이스명2 ... { // 함수 재정의 필요 함수 재정의!! 필수 } 다형성 이용 가능 인터페이스자료형 객체명 = new 자식클래스() ♠\ 참조 /♠ ( 특징 ) (1) 속성(Attribute) 1) 정적(공유) 상수이다. 명명법 : 모두 대문자 (2) 함수(Method) 1) 추상함수(실행불럭 {} 없음) 2) abstract (추..
추상클래스 정의 // 추상 클래스 (부모) public abstract class 클래스명 { Method1 , Method2 , ...} // 자식 클래스 (자식) public class 클래스명 extends 부모클래스명 {} main 클래스 사용법 // 메인 클래스 public static void main(String args) { 자식자료형 자식객체 = new 자식자료형(); 자식객체.Method1 자식객체.Method2 } ♠\ 참조 /♠ ( 특징 ) (1) 자식클래스를 만들어서 상속 받아 사용해야한다. ( 목적 ) 프로젝트에서 개발자가 많을때 함수이름과 속성 이름을 통일 시킬 목적으로 사용 추상메서드 정의 // 추상 클래스 (부모) public abstract class..
instanceof 란? 객체가 어느 클래스인지 확인하는 용도 사용법 A 객체가 B클래스이니? if(A객체 instanceof B클래스) {}