Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java 9의 JShell에서 Set 인터페이스를 구현하는 방법은 무엇입니까?


JShell 표현식, 클래스, 인터페이스, 메소드 등과 같은 간단한 명령문을 실행하는 데 사용되는 Java 9의 명령줄 도구입니다.

세트 고유한 요소가 있는 컬렉션에 대한 계약을 지정하는 Java의 인터페이스입니다. . object1.equals(object2)인 경우 true를 반환하면 object1과 object2 중 하나만 Set 구현에 위치합니다.

아래 코드 스니펫에서 Set.of()를 사용해야 합니다. 방법. Set.of() 에 의해 반환된 컬렉션 메소드가 불변 , 그래서 add()를 지원하지 않습니다. 방법. 요소를 추가하려고 하면 UnsupportedOperationException이 발생합니다. . HashSet 을 생성하려는 경우 대신 add()를 지원하는 컬렉션 Set의 고유한 속성을 테스트하는 메서드입니다. false를 반환하면 중복 "Adithya" 항목 삽입에 실패했음을 나타냅니다.

스니펫-1

jshell> Set<String> set = Set.of("Adithya", "Chaitanya", "Jai");
set ==> [Jai, Adithya, Chaitanya]

jshell> set.add("Adithya");
|   java.lang.UnsupportedOperationException thrown:

jshell> Set<String> hashSet = new HashSet<>(set);
hashSet ==> [Chaitanya, Jai, Adithya]

jshell> hashSet.add("Adithya");
$8 ==> false

jshell> hashSet
hashSet ==> [Chaitanya, Jai, Adithya]


아래 코드 스니펫에서 HashSet 을 구현해야 합니다. 삽입 순서나 정렬 순서로 저장되지 않은 요소입니다.

스니펫-2

jshell> Set<Integer> numbers = new HashSet<>();
numbers ==> []

jshell> numbers.add(12345);
$11 ==> true

jshell> numbers.add(1234);
$12 ==> true

jshell> numbers.add(123);
$13 ==> true

jshell> numbers.add(12);
$14 ==> true

jshell> numbers
numbers ==> [1234, 12345, 123, 12]


아래 코드 스니펫에서 LinkedHashSet 을 구현해야 합니다. 삽입 순서로 요소가 저장되는 위치 .

스니펫-3

jshell> Set<Integer> numbers1 = new LinkedHashSet<>();
numbers1 ==> []

jshell> numbers1.add(12345);
$17 ==> true

jshell> numbers1.add(1234);
$18 ==> true

jshell> numbers1.add(123);
$19 ==> true

jshell> numbers1.add(12);
$20 ==> true

jshell> numbers1
numbers1 ==> [12345, 1234, 123, 12]

jshell> numbers1.add(123456);
$22 ==> true

jshell> numbers1
numbers1 ==> [12345, 1234, 123, 12, 123456]


아래 코드 스니펫에서 TreeSet 요소가 정렬된 순서로 저장되는 경우 .

스니펫-4

jshell> Set<Integer> numbers2 = new TreeSet<>();
numbers2 ==> []

jshell> numbers2.add(12345);
$25 ==> true

jshell> numbers2.add(1234);
$26 ==> true

jshell> numbers2.add(123);
$27 ==> true

jshell> numbers2.add(12);
$28 ==> true

jshell> numbers2
numbers2 ==> [12, 123, 1234, 12345]

jshell> numbers2.add(123456);
$30 ==> true

jshell> numbers2
numbers2 ==> [12, 123, 1234, 12345, 123456]