본문 바로가기
Language/Java 요약

6/28 요약 List ~String 관련 클래스

by 태윤2 2020. 6. 28.

equals() 메서드

두 객체가 같은지 동등 비교(==) 수행

=> 두 객체의 주소값을 비교하여 같으면 true 다르면 false 리턴

실제 두 객체가 같다 라는 의미는 두객체의 주소값이 아닌 객체가 가지는 멤버변수가 같다는 의미

따라서, 사용자가 정의하는 클래스에 equals() 메서드를 오버라이딩 하여 각 객체의 멤버변수끼리 비교하도록 수정

자바에서 제공하는 대부분의 클래스 (API) 들은 equals가 오버라이딩 되어있다

Alt+Shift+S / H

 

toString() 메서드

어떤 객체의 정보를 문자열로 변환하여 리턴

기본적으로 Object 클래스의 toString() 메서드는 객체의 정보가 클래스명과 객체의 고유값(주소값)을 리턴하도록 정의

일반적으로 객체의 정보는 객체 내의 멤버변수에 저장된 데이터를 의미

Object 클래스의 toString()메서드를 오버라이딩 하여

객체 내의 멤버변수를 문자열로 결합하여 리턴하도록 해야함

toString() 메서드를 출력문 내에서 호출하는 경우 생략 가능

자바에서 제공하는 대부분의 클래스(API)들은 toString이 오버라이딩 되어 있다.

그러므로 객체 내의 내용 비교가 가능함

Alt+Shift+S /S

 

Collection 을 상속받는 대표적인 3개의 인터페이스 : Set,List,Map

 

1. Set 계열

순서를 유지하지 않는 집합 = > 인덱스 번호가 없으므로 특정위치에서 직접 접근 불가능

중복을 허용하지 않음 = > 효율적인 중복제거 수단

대표적인 구현체 클래스 = > HashSet,TreeSet

 

2.List 계열

순서가 유지되는 데이터 집합(순서 유지를 위해 인덱스를 사용)

인덱스를 사용하므로 중복 데이터를 허용(인덱스를 통해 구별)

Set 계열과 기본적인 메서드 동일(Collection을 상속받았으므로)

=> 인덱스를 사용하는 메서드들이 추가됨

배열(Array)과 유사한 구조

대표적인 구현체 클래스 : ArrayList,Vector

 

3.Map 계열

키(Key) 와 값(Value)을 한 쌍으로 갖는 데이터 구조

키는 중복 불가능, 값은 중복 가능

대표적인 구현체 클래스 : HashMap, Properties

 

 

 

 

Wrapper 클래스

기본 데이터 타입 8개에 대응하는 클래스들의 모음

Byte,Short,Integer,Long,Float,Double,Character,Boolean

 

기본데이터 타입 데이터를 둘러싸서 객체 형태로 변환하여

클래스가 제공하는 변수 및 메서드를 통해 효율적 데이터 처리를 도와주는 클래스

Java.lang 패키지 = import 가 필요없음

 

기본형데이터타입 - >참조형데이터타입(객체)로 변환하는 것을 박싱

참조형데이터타입 - > 기본형데이터타입으로 변환하는 것을 언박싱

자바에서 오토박싱,언박싱을 제공

 

 

String 클래스

내부적으로 char[] 타입으로 각각 문자들을 관리

배열의 인덱스와 동일한 값을 각각의 문자열에

final클래스로 저장/ 상속 불가능한 클래스

한 번 생성된 문자열은 불변이므로, 문자열을 수정하면 수정된 내용을 갖는 새로운 문자열을 생성하여 다른 공간(주소값)에 저장

 

StringBuffer & StringBuilder 

 

 

 

StringBuffer & StringBuilder 클래스

 

String 클래스와 무관한 클래스

문자열 편집에 용이한 클래스

버퍼를 사용하여 문자열을 저장하며 편집 시 버퍼안의 내용을 직접 조작 => String 클래스에 비해 편집속도가 빠름

문자열 편집 결과에 대한 새 문자열이 생성되지 않으므로 공간 낭비가 적음

 

문자열 생성 시 String 클래스와 달리 리터럴 할당은 불가능하며, 객체 생성만 가능

 

 

 

 

 

 

 

'Language > Java 요약' 카테고리의 다른 글

개념정리 0709  (0) 2020.07.09
자바 개념 정리  (0) 2020.07.02
Java 0614 정리 / 다형성-추상  (0) 2020.06.14
Java 0614 정리 / 클래스 ~ 상속  (0) 2020.06.14
0613 Java 정리 2 / 배열  (0) 2020.06.13