programing

Set을 String으로 변환하는 방법[ ]

bestcode 2022. 7. 10. 21:21
반응형

Set을 String으로 변환하는 방법[ ]

나 좀 사야겠어.String[]갑자기Set<String>어떻게 하는지 모르겠어요.다음 작업이 실패합니다.

Map<String, ?> myMap = gpxlist.getAll();
Set<String> myset = myMap.keySet();
String[] GPXFILES1 = (String[]) myset.toArray(); // Here it fails.

어떻게 고쳐야 작동하나요?

다음 방법을 사용합니다.IntFunction발전기로서.

String[] GPXFILES1 = myset.toArray(String[]::new);

Java 11을 아직 사용하지 않은 경우 동일한 크기의 입력된 배열 인수를 사용하는 방법을 사용하십시오.

String[] GPXFILES1 = myset.toArray(new String[myset.size()]);

Java 11에서는 아직 사용할 수 없습니다.myset는 배열로 변환하는 시점에서 수정할 수 없습니다.그러면 빈 배열 유형을 지정하는 것이 좋습니다.

String[] GPXFILES1 = myset.toArray(new String[0]);

자바 11

새로운 디폴트toArray에 있어서의 방법.Collectioninterface를 사용하면 컬렉션 요소를 원하는 런타임 유형의 새로 생성된 배열로 전송할 수 있습니다.시간이 걸린다IntFunction<T[]> generator다음과 같이 사용할 수 있습니다.

 String[] array = set.toArray(String[]::new);

유사한 방법이 이미 있습니다.Collection.toArray(T[])그리고 이 추가는 우리가 더 이상 통과할 수 없다는 것을 의미한다.null이 경우 메서드에 대한 참조가 모호하기 때문입니다.하지만 두 방법 모두 NPE를 던지기 때문에 여전히 괜찮습니다.

자바 8

Java 8에서는 streams API를 사용할 수 있습니다.

String[] array = set.stream().toArray(String[]::new);

또한 오버로드된 버전의 toArray()를 사용하여IntFunction<A[]> generator다음과 같이 합니다.

String[] array = set.stream().toArray(n -> new String[n]);

여기서 제너레이터 함수의 목적은 정수(원하는 배열 크기)를 취하여 원하는 크기의 배열을 생성하는 것입니다.나는 개인적으로 람다 표현을 사용한 후자의 방법보다 방법 참조를 사용한 전자의 방법을 선호한다.

ToArray(T[] a 방법 사용:

String[] array = set.toArray(new String[0]);

Guava 스타일:

Set<String> myset = myMap.keySet();
FluentIterable.from(mySet).toArray(String.class);

상세정보 : https://google.github.io/guava/releases/19.0/api/docs/com/google/common/collect/FluentIterable.html

Java 11에서는Collection.toArray(generator)방법.다음 코드는 String의 새 배열을 만듭니다.

Set<String> set = Set.of("one", "two", "three");
String[] array = set.toArray(String[]::new)

참조: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Collection.html#toArray(java.util.function.IntFunction)

Set<String> stringSet= new HashSet<>();
String[] s = (String[])stringSet.toArray();

나도 같은 상황에 직면해 있었다.

먼저 필요한 구조를 선언합니다.

Set<String> myKeysInSet = null; String[] myArrayOfString = null;

제 경우 JSON 오브젝트가 있는데 이 JSON의 모든 키를 문자열 배열에 저장해야 합니다.GSON 라이브러리를 사용하여 JSON.keySet()을 사용하여 키를 가져오고 Set으로 이동합니다.

myKeysInSet = json_any.keySet();

이것으로, 모든 키가 필요한 대로 세트 구조로 되어 있습니다.문자열 배열에 대한 값만 있으면 됩니다.아래 코드를 참조하십시오.

myArrayOfString = myKeysInSet.toArray(new String[myKeysInSet.size()]);

이것이 Stack Overflow에서의 첫 번째 답변이었습니다.오류는 죄송합니다.D

언급URL : https://stackoverflow.com/questions/5982447/how-to-convert-setstring-to-string

반응형