반복 요소를 사용하여 목록 작성
Java에서 모든 요소가 지정된 값과 동일한 길이의 목록 또는 배열을 생성하는 유틸리티 메서드가 있습니까?("foo", "foo", "foo", "foo", "foo" 등)
를 사용할 수 있습니다.이것에 의해, 오브젝트 자체가 아니고, 지정된 오브젝트에의 참조가 카피됩니다.현을 가지고 일한다면, 어차피 현은 불변하기 때문에 상관없습니다.
List<String> list = Collections.nCopies(5, "foo");
System.out.println(list);
[푸우우우우우우우우우우우우우우우우우우우우우우우우우우우우우]
어레이의 경우 Arrays.fill(Object[] a, Object val)을 사용할 수 있습니다.
String[] strArray = new String[10];
Arrays.fill(strArray, "foo");
리스트가 필요하시면
List<String> asList = Arrays.asList(strArray);
다음 두 줄을 사용해야 합니다.String [] strArray = 새 String [5], Arrays.fill(strArray, "foo");한 줄짜리 해결책이 있나요?
컬렉션을 사용할 수 있습니다.nCopies(5, "foo")를 한 줄 솔루션으로 사용하여 목록을 가져옵니다.
List<String> strArray = Collections.nCopies(5, "foo");
또는 조합하여toArray
어레이를 가져옵니다.
String[] strArray = Collections.nCopies(5, "foo").toArray(new String[5]);
오브젝트가 불변하지 않거나 참조 투과성이 없는 경우
Stream.generate(YourClass::new).limit(<count>)
목록으로 수집합니다.
.collect(Collectors.toList())
또는 배열할 수 있습니다.
.toArray(YourClass[]::new)
원시 어레이에 사용할 수 있는 버전(Java 8):
DoubleStream.generate(() -> 123.42).limit(777).toArray(); // returns array of 777 123.42 double vals
반환되는 것에 주의해 주세요.double[]
,것은 아니다.Double[]
IntegerStream, DoubleStream, LongStream에서 작동
업데이트
string dups의 경우 다음을 사용할 수 있습니다.
Stream.generate(() -> "value").limit(400).toArray()
추가 립은 필요 없습니다.한 줄
사용.IntStream
정수 범위를 생성하여 원하는 요소에 매핑하고 목록으로 수집할 수 있습니다.
List<String> list = IntStream.rangeClosed(0, 5)
.mapToObj(i -> "foo")
.collect(Collectors.toList());
또는 어레이로서
String[] arr = IntStream.rangeClosed(0, 5)
.mapToObj(i -> "foo")
.toArray(String[]::new);
언급URL : https://stackoverflow.com/questions/26299612/creating-a-list-with-repeating-element
'source' 카테고리의 다른 글
Vuejs 공유 무선 구성 요소가 렌더에서 확인되지 않음 (0) | 2022.10.29 |
---|---|
MySQL 다중 왼쪽 결합 제한 (0) | 2022.10.29 |
Spring Boot application.properties 값이 채워지지 않았습니다. (0) | 2022.10.29 |
Python이 virtualenv 내에서 실행 중인지 확인 (0) | 2022.10.29 |
MySQL에서 타임스탬프를 날짜/시간으로 변환하는 방법 (0) | 2022.10.29 |