일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 1차캐시
- 스프링부트오류
- jpa에러
- 최종 프로젝트
- JPA
- Filter
- spring서버
- git
- ERD 작성
- JoinColumn
- queryDSL
- github
- Q 클래스
- 인텔리제이
- json gson 차이
- REST API 규칙
- JPA주의사항
- REST란
- 스프링 부트 공식 문서
- @IdClass
- jpa회원가입
- 빈생성안됨
- jwt메서드
- uncheck Exception
- 스프링 부트 기능
- Unsatisfied dependency
- Spring Spring boot 차이
- json
- Error creating bean with name
- 복합키
- Today
- Total
Everyday Dev System
empty()와 isEmpty() 차이 본문
empty() 메서드는 Stack 클래스에 정의되어 있으며,
isEmpty() 메서드는 Collection 인터페이스에 정의되어 있다는 데에 차이가 있습니다.
JDK 1.0에서는 컬렉션 프레임워크가 존재하지 않았습니다.
Stack, Vector, HashTable 은 Collection 프레임워크 이전부터 자바에서 제공하는 기본 데이터 구조입니다.
JDK 1.2에서 Collection 프레임워크가 추가되었으며 List, Map과 같은 표준 인터페이스가 도입되었습니다.
그러나 이러한 표준 Collection 인터페이스에서는 메소드들이 다른 규약(convention)으로 명명 되었습니다. 이러한 변화는 JDK 1.2에 도입된 자바 빈 표준에 영향을 받은 것으로 보입니다. 이러한 메서드 이름은 이전의 Stack, Vector, HashTable 의 메소드 이름과 다릅니다. 원래의 Stack 클래스에서는 empty()로 지정된 메소드가, 컬렉션 인터페이스에선 isEmpty()로 이름이 지정된 것을 예로 들 수 있습니다.
따라서 Stack, Vector, HashTable 을 컬렉션 프레임워크와 호환되게 하기 위해 상응하는 컬렉션 인터페이스를 구현하게 되었고 동시에 역호환성을 위해 오래된 방법들(ex. empty())이 유지되었습니다.
그렇지만, 둘다 비어있는지를 확인하는 메소드로, 속한 클래스와 인터페이스에서만 약간의 차이가 있습니다.
empty() : Stack이 비어있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
isEmpty() : List, Set, Queue 등 다양한 데이터 구조를 포함하고, 다양한 데이터 구조에 공통적으로 활용할 수 있습니다.
empty()는 Stack에 한정하여 활용 가능하고, isEmpty()는 더 넓은 범위의 데이터 구조에 적용될 수 있습니다.
references :
https://dev-minjeong.tistory.com/14
[JAVA] empty()와 isEmpty()
기본적인 스택 관련 알고리즘 문제를 풀던 도중, 스택이 비어있는 지 확인하기 위해 다음과 같이 코드를 작성하다 의문이 생겼다. empty() 와 isEmpty() 의 차이가 무엇인가에 대한 의문. Stack과 컬렉
dev-minjeong.tistory.com
'have to > 자바 알고리즘' 카테고리의 다른 글
[level 2] Title: 전화번호 목록 코드 개선:: List -> Set (0) | 2023.11.14 |
---|---|
분수의 덧셈 문제 - 개선 (0) | 2023.10.24 |
문자열 겹쳐쓰기 문제 - 개선 (1) | 2023.10.24 |
문자열 합치기 (0) | 2023.10.24 |
배열 비교하기 (0) | 2023.10.18 |