1. Equals
- == 비교 연산자
- 주소의 값을 비교함(Call By Reference)
- 주소값 : 실제 내용의 값이 아닌 자료의 위치의 값임
- Equals Method(메소드)
- Object(객체)끼리 내용을 비교함(Call By Value)
- Equals Method[타입별]
- Object[객체]
- Object의 주소를 비교함
- 같은 값을 가진 Object라도 따로 생성되었다면 False가 나옴
- String[문자열]
- 문자열 값이 같으면 True를 반환함
- Java에서 흔히 문자열을 비교할때 사용함
- 비교대상이 **String Instance(인스턴스)**라면 문자열을 비교해서 True라면 반환해줌
- Integer[정수형]
- Integer Instance라면 intValue를 비교해서 값을 반환해줌
2. Split
- 구분자를 기준으로 문자열(String)을 잘라 배열(Array)로 입력할 때 사용하는 메서드(Method)임
- 표현법은 split(String regex); ⇒ 구분자를 바탕으로 배열형식으로 문자열을 잘라 줄때임
- ex1) split(String regex);
- 공백 “ “ 을 사용해 문자열을 분리함
- String str = “Hello World”;
- String[] strArr = str.split(” “); ⇒ Hello
-
World
- “ , ”를 기준으로 분리함
- String str = “Hello,World”;
- String[] strArr = str.split(”,“); ⇒ Hello
-
World
- 여러 개의 구분자를 두어서 분리함
- String str = “Hello,World test@gmail.com”;
- String[] strArr = str.split(”,|@|-| “); ⇒ Hello
-
World
-
test
-
gmail.com
- 하나의 값만 가져오기
- 배열이 아닌 하나의 값만 가져올때!
- String str = “010-1234-5678”;
- String[] strArr = str.split(”-“)[3]; ⇒ 5678
3. Hash
- Hash?
- Arraylist는 내부 index를 이용하여 검색이 한번에 이루어지기 때문에 빠른 검색 속도를 보장함
- 데이터 추가/삭제시 기존 데이터를 밀어내거나 당기는 작업 없이 특별한 알고리즘을 이용하여 데이터와 연관된 고유한 숫자를 만들어 낸 뒤 Index를 사용함
- HashTable
- key : value에서 key를 테이블에 저장할 때 key값을 Hash Method를 이용해 계산을 한 후, 결과값을 배열의 Index로 사용하여 저장하는 방식을 말함
- HashMethod
- 특별한 알고리즘을 이용하여 데이터의 고유한 숫자값을 만들어 Index로 사용함
- 알고리즘을 구현한 Method를 HashMethod라고 하며 Hash Method에 의해 반환된 데이터의 고유 숫자값을 Hash Code라고 함
- Java에서는 Object클래스의 hashCode method를 이용하여 모든 Object의 HashCode를 쉽게 구할 수 있음
- 데이터가 저장되어 있는 곳을 알려주기 때문에 다량의 데이터 중에서도 원하는 데이터를 빠르게 찾을 수 있음
- Hashing
- HashMap과 같이 Hashing을 구현한 컬렉션 클래스에서는 Object클래스에 정의된 hasCode()를 HashMethod로 사용함
- HashMethod를 이용해 데이터를 HashTable에 저장하고 검색하는 기법을 Hashing이라함
- Object클래스에 정의된 hashCode()는 Object의 주소를 이용하는 알고리즘으로 HashCode를 만들어내기 때문에 모든 Object에 대해 중복되지 않는 값을 제공함
- String클래스의 경우 Object로 상속받은 hashCode()를 오버라이딩하여 String의 내용으로 HashCode를 만들어내고, 서로다른 String Instance일지라도 같은 내용의 String을 가졌다면 hashCode()를 호출했을때 같은 값을 얻을 수 있음
- HashMap
- key-value로 값을 저장함
- Arraylist처럼 index로 해당 데이터에 바로 찾아가는 기능이 구현되어 있음
- key를 추가/삭제할때 LinkedList처럼 다른 데이터들의 index를 바꿔 줄 필요없이 key의 중복만 검사해서 빠르게 변경해주면 됨