You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by zh...@apache.org on 2026/02/11 14:36:47 UTC
(lucene) branch branch_10x updated: Replace pre-sized array or empty array with lambda expression to call Collection#toArray. (#15681)
This is an automated email from the ASF dual-hosted git repository.
zhouhui pushed a commit to branch branch_10x
in repository https://gitbox.apache.org/repos/asf/lucene.git
The following commit(s) were added to refs/heads/branch_10x by this push:
new c8b00d2ba72 Replace pre-sized array or empty array with lambda expression to call Collection#toArray. (#15681)
c8b00d2ba72 is described below
commit c8b00d2ba72d4b304c1d8e1eed3ee8e287ab4102
Author: zhouhui <vs...@163.com>
AuthorDate: Wed Feb 11 22:25:07 2026 +0800
Replace pre-sized array or empty array with lambda expression to call Collection#toArray. (#15681)
---
.../apache/lucene/analysis/custom/CustomAnalyzer.java | 4 ++--
.../analysis/query/QueryAutoStopWordAnalyzer.java | 2 +-
.../lucene/analysis/synonym/SolrSynonymParser.java | 2 +-
.../byTask/tasks/SearchTravRetHighlightTask.java | 2 +-
.../apache/lucene/benchmark/byTask/utils/Config.java | 2 +-
.../codecs/simpletext/SimpleTextCompoundFormat.java | 2 +-
.../org/apache/lucene/codecs/DocValuesConsumer.java | 2 +-
.../java/org/apache/lucene/codecs/FieldsConsumer.java | 3 +--
.../lucene/codecs/lucene90/Lucene90CompoundReader.java | 2 +-
.../src/java/org/apache/lucene/document/Document.java | 6 +++---
.../apache/lucene/geo/SimpleGeoJSONPolygonParser.java | 4 ++--
.../org/apache/lucene/geo/SimpleWKTShapeParser.java | 8 ++++----
.../src/java/org/apache/lucene/index/FieldInfos.java | 2 +-
.../core/src/java/org/apache/lucene/index/Fields.java | 3 ---
.../src/java/org/apache/lucene/index/IndexWriter.java | 2 +-
.../src/java/org/apache/lucene/index/MultiFields.java | 4 +---
.../src/java/org/apache/lucene/index/MultiTerms.java | 6 +++---
.../src/java/org/apache/lucene/index/ReaderSlice.java | 6 +-----
.../org/apache/lucene/index/ReadersAndUpdates.java | 2 +-
.../index/SoftDeletesDirectoryReaderWrapper.java | 2 +-
.../apache/lucene/index/StandardDirectoryReader.java | 18 ++++++++----------
.../core/src/java/org/apache/lucene/index/Terms.java | 3 ---
.../java/org/apache/lucene/index/TermsEnumIndex.java | 2 --
.../lucene/search/BlockMaxConjunctionScorer.java | 4 ++--
.../org/apache/lucene/search/ExactPhraseMatcher.java | 2 +-
.../java/org/apache/lucene/search/IndexSearcher.java | 2 +-
.../java/org/apache/lucene/search/MultiCollector.java | 2 +-
.../org/apache/lucene/search/MultiPhraseQuery.java | 6 +++---
.../src/java/org/apache/lucene/search/PhraseQuery.java | 2 +-
.../java/org/apache/lucene/search/SynonymQuery.java | 2 +-
.../src/java/org/apache/lucene/store/FSDirectory.java | 2 +-
.../org/apache/lucene/store/FileSwitchDirectory.java | 2 +-
.../org/apache/lucene/store/NRTCachingDirectory.java | 2 +-
.../java/org/apache/lucene/util/AttributeSource.java | 2 +-
.../src/java/org/apache/lucene/util/QueryBuilder.java | 8 ++++----
.../org/apache/lucene/index/TestMaxTermFrequency.java | 2 +-
.../org/apache/lucene/index/TestTieredMergePolicy.java | 4 +---
.../org/apache/lucene/search/TestPointQueries.java | 2 +-
.../lucene/util/automaton/TestCompiledAutomaton.java | 2 +-
.../search/grouping/TestDistinctValuesCollector.java | 5 +----
.../apache/lucene/search/grouping/TestGrouping.java | 4 ++--
.../lucene/search/uhighlight/UnifiedHighlighter.java | 2 +-
.../search/vectorhighlight/BaseFragmentsBuilder.java | 2 +-
.../uhighlight/TestUnifiedHighlighterTermVec.java | 2 +-
.../org/apache/lucene/search/join/TestJoinUtil.java | 4 ++--
.../apache/lucene/luke/models/search/MLTConfig.java | 2 +-
.../org/apache/lucene/queries/mlt/MoreLikeThis.java | 4 ++--
.../complexPhrase/ComplexPhraseQueryParser.java | 6 +++---
.../codecs/idversion/TestIDVersionPostingsFormat.java | 2 +-
.../lucene/tests/analysis/BaseTokenStreamTestCase.java | 16 ++++++++--------
.../tests/index/BaseTermVectorsFormatTestCase.java | 4 ++--
51 files changed, 83 insertions(+), 105 deletions(-)
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/custom/CustomAnalyzer.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/custom/CustomAnalyzer.java
index a6a41e94c0c..7af968f292e 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/custom/CustomAnalyzer.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/custom/CustomAnalyzer.java
@@ -586,9 +586,9 @@ public final class CustomAnalyzer extends Analyzer {
throw new IllegalStateException("You have to set at least a tokenizer.");
}
return new CustomAnalyzer(
- charFilters.toArray(new CharFilterFactory[charFilters.size()]),
+ charFilters.toArray(CharFilterFactory[]::new),
tokenizer.get(),
- tokenFilters.toArray(new TokenFilterFactory[tokenFilters.size()]),
+ tokenFilters.toArray(TokenFilterFactory[]::new),
posIncGap.get(),
offsetGap.get());
}
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzer.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzer.java
index fbf985c672d..85fedb7ce7c 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzer.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzer.java
@@ -173,7 +173,7 @@ public final class QueryAutoStopWordAnalyzer extends AnalyzerWrapper {
*/
public String[] getStopWords(String fieldName) {
Set<String> stopWords = stopWordsPerField.get(fieldName);
- return stopWords != null ? stopWords.toArray(new String[stopWords.size()]) : new String[0];
+ return stopWords != null ? stopWords.toArray(String[]::new) : new String[0];
}
/**
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SolrSynonymParser.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SolrSynonymParser.java
index d1ebcfb17f0..8f162c699f5 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SolrSynonymParser.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SolrSynonymParser.java
@@ -166,7 +166,7 @@ public class SolrSynonymParser extends SynonymMap.Parser {
list.add(sb.toString());
}
- return list.toArray(new String[list.size()]);
+ return list.toArray(String[]::new);
}
private String unescape(String s) {
diff --git a/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/SearchTravRetHighlightTask.java b/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/SearchTravRetHighlightTask.java
index dd6c647fae1..546665d7324 100644
--- a/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/SearchTravRetHighlightTask.java
+++ b/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/SearchTravRetHighlightTask.java
@@ -278,7 +278,7 @@ public class SearchTravRetHighlightTask extends SearchTravTask {
UnifiedHighlighter highlighter;
IndexSearcher lastSearcher;
UnifiedHighlighter.OffsetSource offsetSource; // null means auto select
- String[] fields = hlFields.toArray(new String[hlFields.size()]);
+ String[] fields = hlFields.toArray(String[]::new);
int[] maxPassages;
UnifiedHLImpl(final UnifiedHighlighter.OffsetSource offsetSource) {
diff --git a/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/Config.java b/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/Config.java
index 4887af5fc00..f1f93902cd1 100644
--- a/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/Config.java
+++ b/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/Config.java
@@ -327,7 +327,7 @@ public class Config {
String t = st.nextToken();
a.add(t);
}
- return a.toArray(new String[a.size()]);
+ return a.toArray(String[]::new);
}
// extract properties to array, e.g. for "10:100:5" return int[]{10,100,5}.
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextCompoundFormat.java b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextCompoundFormat.java
index 0a92163c537..866f59a29d2 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextCompoundFormat.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextCompoundFormat.java
@@ -161,7 +161,7 @@ public class SimpleTextCompoundFormat extends CompoundFormat {
String dataFile = IndexFileNames.segmentFileName(si.name, "", DATA_EXTENSION);
int numFiles = si.files().size();
- String[] names = si.files().toArray(new String[numFiles]);
+ String[] names = si.files().toArray(String[]::new);
Arrays.sort(names);
long[] startOffsets = new long[numFiles];
long[] endOffsets = new long[numFiles];
diff --git a/lucene/core/src/java/org/apache/lucene/codecs/DocValuesConsumer.java b/lucene/core/src/java/org/apache/lucene/codecs/DocValuesConsumer.java
index e70db7c4107..1a43450b5b3 100644
--- a/lucene/core/src/java/org/apache/lucene/codecs/DocValuesConsumer.java
+++ b/lucene/core/src/java/org/apache/lucene/codecs/DocValuesConsumer.java
@@ -678,7 +678,7 @@ public abstract class DocValuesConsumer implements Closeable {
}
final int numReaders = toMerge.size();
- final SortedDocValues[] dvs = toMerge.toArray(new SortedDocValues[numReaders]);
+ final SortedDocValues[] dvs = toMerge.toArray(SortedDocValues[]::new);
TermsEnum[] liveTerms = new TermsEnum[dvs.length];
long[] weights = new long[liveTerms.length];
diff --git a/lucene/core/src/java/org/apache/lucene/codecs/FieldsConsumer.java b/lucene/core/src/java/org/apache/lucene/codecs/FieldsConsumer.java
index cf0f796e32a..5443585ab97 100644
--- a/lucene/core/src/java/org/apache/lucene/codecs/FieldsConsumer.java
+++ b/lucene/core/src/java/org/apache/lucene/codecs/FieldsConsumer.java
@@ -90,8 +90,7 @@ public abstract class FieldsConsumer implements Closeable {
Fields mergedFields =
new MappedMultiFields(
mergeState,
- new MultiFields(
- fields.toArray(Fields.EMPTY_ARRAY), slices.toArray(ReaderSlice.EMPTY_ARRAY)));
+ new MultiFields(fields.toArray(Fields[]::new), slices.toArray(ReaderSlice[]::new)));
write(mergedFields, norms);
}
diff --git a/lucene/core/src/java/org/apache/lucene/codecs/lucene90/Lucene90CompoundReader.java b/lucene/core/src/java/org/apache/lucene/codecs/lucene90/Lucene90CompoundReader.java
index 460ac34a286..f79690b921f 100644
--- a/lucene/core/src/java/org/apache/lucene/codecs/lucene90/Lucene90CompoundReader.java
+++ b/lucene/core/src/java/org/apache/lucene/codecs/lucene90/Lucene90CompoundReader.java
@@ -175,7 +175,7 @@ final class Lucene90CompoundReader extends CompoundDirectory {
@Override
public String[] listAll() {
ensureOpen();
- String[] res = entries.keySet().toArray(new String[entries.size()]);
+ String[] res = entries.keySet().toArray(String[]::new);
// Add the segment name
for (int i = 0; i < res.length; i++) {
diff --git a/lucene/core/src/java/org/apache/lucene/document/Document.java b/lucene/core/src/java/org/apache/lucene/document/Document.java
index 43f8e1a5631..fabe4f30d2b 100644
--- a/lucene/core/src/java/org/apache/lucene/document/Document.java
+++ b/lucene/core/src/java/org/apache/lucene/document/Document.java
@@ -121,7 +121,7 @@ public final class Document implements Iterable<IndexableField> {
}
}
- return result.toArray(new BytesRef[result.size()]);
+ return result.toArray(BytesRef[]::new);
}
/**
@@ -172,7 +172,7 @@ public final class Document implements Iterable<IndexableField> {
}
}
- return result.toArray(new IndexableField[result.size()]);
+ return result.toArray(IndexableField[]::new);
}
/**
@@ -210,7 +210,7 @@ public final class Document implements Iterable<IndexableField> {
return NO_STRINGS;
}
- return result.toArray(new String[result.size()]);
+ return result.toArray(String[]::new);
}
/**
diff --git a/lucene/core/src/java/org/apache/lucene/geo/SimpleGeoJSONPolygonParser.java b/lucene/core/src/java/org/apache/lucene/geo/SimpleGeoJSONPolygonParser.java
index b7de089f765..c19c7c517c9 100644
--- a/lucene/core/src/java/org/apache/lucene/geo/SimpleGeoJSONPolygonParser.java
+++ b/lucene/core/src/java/org/apache/lucene/geo/SimpleGeoJSONPolygonParser.java
@@ -92,7 +92,7 @@ class SimpleGeoJSONPolygonParser {
polygons.add(parsePolygon((List<Object>) o));
}
- return polygons.toArray(new Polygon[polygons.size()]);
+ return polygons.toArray(Polygon[]::new);
}
}
@@ -242,7 +242,7 @@ class SimpleGeoJSONPolygonParser {
double[][] holePoints = parsePoints((List<Object>) o);
holes.add(new Polygon(holePoints[0], holePoints[1]));
}
- return new Polygon(polyPoints[0], polyPoints[1], holes.toArray(new Polygon[holes.size()]));
+ return new Polygon(polyPoints[0], polyPoints[1], holes.toArray(Polygon[]::new));
}
/** Parses [[lat, lon], [lat, lon] ...] into 2d double array */
diff --git a/lucene/core/src/java/org/apache/lucene/geo/SimpleWKTShapeParser.java b/lucene/core/src/java/org/apache/lucene/geo/SimpleWKTShapeParser.java
index 83d9e5fe8b9..8ffd2245ab0 100644
--- a/lucene/core/src/java/org/apache/lucene/geo/SimpleWKTShapeParser.java
+++ b/lucene/core/src/java/org/apache/lucene/geo/SimpleWKTShapeParser.java
@@ -196,7 +196,7 @@ public class SimpleWKTShapeParser {
while (nextCloserOrComma(stream).equals(COMMA)) {
lines.add(parseLine(stream));
}
- return lines.toArray(new Line[0]);
+ return lines.toArray(Line[]::new);
}
/** parses the hole of a polygon */
@@ -227,7 +227,7 @@ public class SimpleWKTShapeParser {
return new Polygon(
lats.stream().mapToDouble(i -> i).toArray(),
lons.stream().mapToDouble(i -> i).toArray(),
- holes.toArray(new Polygon[0]));
+ holes.toArray(Polygon[]::new));
}
return new Polygon(
lats.stream().mapToDouble(i -> i).toArray(), lons.stream().mapToDouble(i -> i).toArray());
@@ -245,7 +245,7 @@ public class SimpleWKTShapeParser {
while (nextCloserOrComma(stream).equals(COMMA)) {
polygons.add(parsePolygon(stream));
}
- return polygons.toArray(new Polygon[0]);
+ return polygons.toArray(Polygon[]::new);
}
/** parses an ENVELOPE */
@@ -275,7 +275,7 @@ public class SimpleWKTShapeParser {
while (nextCloserOrComma(stream).equals(COMMA)) {
geometries.add(parseGeometry(stream, null));
}
- return geometries.toArray(new Object[0]);
+ return geometries.toArray(Object[]::new);
}
/** next word in the stream */
diff --git a/lucene/core/src/java/org/apache/lucene/index/FieldInfos.java b/lucene/core/src/java/org/apache/lucene/index/FieldInfos.java
index b952bb7a1fd..7b4229a7ad8 100644
--- a/lucene/core/src/java/org/apache/lucene/index/FieldInfos.java
+++ b/lucene/core/src/java/org/apache/lucene/index/FieldInfos.java
@@ -827,7 +827,7 @@ public class FieldInfos implements Iterable<FieldInfo> {
FieldInfos finish() {
finished = true;
- return new FieldInfos(byName.values().toArray(new FieldInfo[byName.size()]));
+ return new FieldInfos(byName.values().toArray(FieldInfo[]::new));
}
}
}
diff --git a/lucene/core/src/java/org/apache/lucene/index/Fields.java b/lucene/core/src/java/org/apache/lucene/index/Fields.java
index e6a83c58f3b..d886bdcc4b7 100644
--- a/lucene/core/src/java/org/apache/lucene/index/Fields.java
+++ b/lucene/core/src/java/org/apache/lucene/index/Fields.java
@@ -44,7 +44,4 @@ public abstract class Fields implements Iterable<String> {
* 0, {@link #iterator} will return as many field names.
*/
public abstract int size();
-
- /** Zero-length {@code Fields} array. */
- public static final Fields[] EMPTY_ARRAY = new Fields[0];
}
diff --git a/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java b/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
index 50ce8f727b5..f1d67a79287 100644
--- a/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
+++ b/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
@@ -6520,7 +6520,7 @@ public class IndexWriter
throw t;
}
- return segStates.toArray(new BufferedUpdatesStream.SegmentState[0]);
+ return segStates.toArray(BufferedUpdatesStream.SegmentState[]::new);
}
/** Tests should override this to enable test points. Default is <code>false</code>. */
diff --git a/lucene/core/src/java/org/apache/lucene/index/MultiFields.java b/lucene/core/src/java/org/apache/lucene/index/MultiFields.java
index e9c01429dcd..3eb00e41f79 100644
--- a/lucene/core/src/java/org/apache/lucene/index/MultiFields.java
+++ b/lucene/core/src/java/org/apache/lucene/index/MultiFields.java
@@ -76,9 +76,7 @@ public final class MultiFields extends Fields {
}
}
if (subs2.size() != 0) {
- result =
- new MultiTerms(
- subs2.toArray(Terms.EMPTY_ARRAY), slices2.toArray(ReaderSlice.EMPTY_ARRAY));
+ result = new MultiTerms(subs2.toArray(Terms[]::new), slices2.toArray(ReaderSlice[]::new));
terms.put(field, result);
}
diff --git a/lucene/core/src/java/org/apache/lucene/index/MultiTerms.java b/lucene/core/src/java/org/apache/lucene/index/MultiTerms.java
index 7f61da627ec..3f8b1afbbeb 100644
--- a/lucene/core/src/java/org/apache/lucene/index/MultiTerms.java
+++ b/lucene/core/src/java/org/apache/lucene/index/MultiTerms.java
@@ -89,7 +89,7 @@ public final class MultiTerms extends Terms {
return null;
} else {
return new MultiTerms(
- termsPerLeaf.toArray(EMPTY_ARRAY), slicePerLeaf.toArray(ReaderSlice.EMPTY_ARRAY));
+ termsPerLeaf.toArray(Terms[]::new), slicePerLeaf.toArray(ReaderSlice[]::new));
}
}
@@ -145,7 +145,7 @@ public final class MultiTerms extends Terms {
}
if (termsEnums.size() > 0) {
- return new MultiTermsEnum(subSlices).reset(termsEnums.toArray(TermsEnumIndex.EMPTY_ARRAY));
+ return new MultiTermsEnum(subSlices).reset(termsEnums.toArray(TermsEnumIndex[]::new));
} else {
return TermsEnum.EMPTY;
}
@@ -189,7 +189,7 @@ public final class MultiTerms extends Terms {
}
if (termsEnums.size() > 0) {
- return new MultiTermsEnum(subSlices).reset(termsEnums.toArray(TermsEnumIndex.EMPTY_ARRAY));
+ return new MultiTermsEnum(subSlices).reset(termsEnums.toArray(TermsEnumIndex[]::new));
} else {
return TermsEnum.EMPTY;
}
diff --git a/lucene/core/src/java/org/apache/lucene/index/ReaderSlice.java b/lucene/core/src/java/org/apache/lucene/index/ReaderSlice.java
index ff54c392f14..3bf6217a74a 100644
--- a/lucene/core/src/java/org/apache/lucene/index/ReaderSlice.java
+++ b/lucene/core/src/java/org/apache/lucene/index/ReaderSlice.java
@@ -24,8 +24,4 @@ package org.apache.lucene.index;
* @param readerIndex Sub-reader index for this slice.
* @lucene.internal
*/
-public record ReaderSlice(int start, int length, int readerIndex) {
-
- /** Zero-length {@code ReaderSlice} array. */
- public static final ReaderSlice[] EMPTY_ARRAY = new ReaderSlice[0];
-}
+public record ReaderSlice(int start, int length, int readerIndex) {}
diff --git a/lucene/core/src/java/org/apache/lucene/index/ReadersAndUpdates.java b/lucene/core/src/java/org/apache/lucene/index/ReadersAndUpdates.java
index f729b50a6c2..761ff5e7d4f 100644
--- a/lucene/core/src/java/org/apache/lucene/index/ReadersAndUpdates.java
+++ b/lucene/core/src/java/org/apache/lucene/index/ReadersAndUpdates.java
@@ -683,7 +683,7 @@ final class ReadersAndUpdates {
byName.put(fi.name, fi);
}
}
- fieldInfos = new FieldInfos(byName.values().toArray(new FieldInfo[0]));
+ fieldInfos = new FieldInfos(byName.values().toArray(FieldInfo[]::new));
final DocValuesFormat docValuesFormat = codec.docValuesFormat();
handleDVUpdates(
diff --git a/lucene/core/src/java/org/apache/lucene/index/SoftDeletesDirectoryReaderWrapper.java b/lucene/core/src/java/org/apache/lucene/index/SoftDeletesDirectoryReaderWrapper.java
index 751a7d53619..6ad04cc8128 100644
--- a/lucene/core/src/java/org/apache/lucene/index/SoftDeletesDirectoryReaderWrapper.java
+++ b/lucene/core/src/java/org/apache/lucene/index/SoftDeletesDirectoryReaderWrapper.java
@@ -108,7 +108,7 @@ public final class SoftDeletesDirectoryReaderWrapper extends FilterDirectoryRead
wrapped.add(wrap);
}
}
- return wrapped.toArray(new LeafReader[0]);
+ return wrapped.toArray(LeafReader[]::new);
}
@Override
diff --git a/lucene/core/src/java/org/apache/lucene/index/StandardDirectoryReader.java b/lucene/core/src/java/org/apache/lucene/index/StandardDirectoryReader.java
index 205df08c84a..cbe7fb8e1fe 100644
--- a/lucene/core/src/java/org/apache/lucene/index/StandardDirectoryReader.java
+++ b/lucene/core/src/java/org/apache/lucene/index/StandardDirectoryReader.java
@@ -148,16 +148,14 @@ public final class StandardDirectoryReader extends DirectoryReader {
writer.incRefDeleter(segmentInfos);
- StandardDirectoryReader result =
- new StandardDirectoryReader(
- dir,
- readers.toArray(new SegmentReader[readers.size()]),
- writer,
- segmentInfos,
- writer.getConfig().getLeafSorter(),
- applyAllDeletes,
- writeAllDeletes);
- return result;
+ return new StandardDirectoryReader(
+ dir,
+ readers.toArray(SegmentReader[]::new),
+ writer,
+ segmentInfos,
+ writer.getConfig().getLeafSorter(),
+ applyAllDeletes,
+ writeAllDeletes);
} catch (Throwable t) {
try {
IOUtils.applyToAll(readers, SegmentReader::decRef);
diff --git a/lucene/core/src/java/org/apache/lucene/index/Terms.java b/lucene/core/src/java/org/apache/lucene/index/Terms.java
index 4343eedf20c..de4998377d6 100644
--- a/lucene/core/src/java/org/apache/lucene/index/Terms.java
+++ b/lucene/core/src/java/org/apache/lucene/index/Terms.java
@@ -135,9 +135,6 @@ public abstract class Terms {
/** Returns true if documents in this field store payloads. */
public abstract boolean hasPayloads();
- /** Zero-length array of {@link Terms}. */
- public static final Terms[] EMPTY_ARRAY = new Terms[0];
-
/**
* Returns the smallest term (in lexicographic order) in the field. Note that, just like other
* term measures, this measure does not take deleted documents into account. This returns null
diff --git a/lucene/core/src/java/org/apache/lucene/index/TermsEnumIndex.java b/lucene/core/src/java/org/apache/lucene/index/TermsEnumIndex.java
index 57a5d5ae0cb..e6f6de848cf 100644
--- a/lucene/core/src/java/org/apache/lucene/index/TermsEnumIndex.java
+++ b/lucene/core/src/java/org/apache/lucene/index/TermsEnumIndex.java
@@ -31,8 +31,6 @@ import org.apache.lucene.util.BytesRefBuilder;
*/
class TermsEnumIndex {
- static final TermsEnumIndex[] EMPTY_ARRAY = new TermsEnumIndex[0];
-
/**
* Copy the first 8 bytes of the given term as a comparable unsigned long. In case the term has
* less than 8 bytes, missing bytes will be replaced with zeroes. Note that two terms that produce
diff --git a/lucene/core/src/java/org/apache/lucene/search/BlockMaxConjunctionScorer.java b/lucene/core/src/java/org/apache/lucene/search/BlockMaxConjunctionScorer.java
index 08ba7488ca7..dc92da63e43 100644
--- a/lucene/core/src/java/org/apache/lucene/search/BlockMaxConjunctionScorer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/BlockMaxConjunctionScorer.java
@@ -36,7 +36,7 @@ final class BlockMaxConjunctionScorer extends Scorer {
/** Create a new {@link BlockMaxConjunctionScorer} from scoring clauses. */
BlockMaxConjunctionScorer(Collection<Scorer> scorersList) throws IOException {
- this.scorers = scorersList.toArray(new Scorer[scorersList.size()]);
+ this.scorers = scorersList.toArray(Scorer[]::new);
// Sort scorer by cost
Arrays.sort(this.scorers, Comparator.comparingLong(s -> s.iterator().cost()));
this.scorables =
@@ -56,7 +56,7 @@ final class BlockMaxConjunctionScorer extends Scorer {
approximations[i] = ScorerUtil.likelyImpactsEnum(approximations[i]);
scorer.advanceShallow(0);
}
- this.twoPhases = twoPhaseList.toArray(new TwoPhaseIterator[twoPhaseList.size()]);
+ this.twoPhases = twoPhaseList.toArray(TwoPhaseIterator[]::new);
Arrays.sort(this.twoPhases, Comparator.comparingDouble(TwoPhaseIterator::matchCost));
}
diff --git a/lucene/core/src/java/org/apache/lucene/search/ExactPhraseMatcher.java b/lucene/core/src/java/org/apache/lucene/search/ExactPhraseMatcher.java
index ceea433f1fc..23129ccd374 100644
--- a/lucene/core/src/java/org/apache/lucene/search/ExactPhraseMatcher.java
+++ b/lucene/core/src/java/org/apache/lucene/search/ExactPhraseMatcher.java
@@ -78,7 +78,7 @@ public final class ExactPhraseMatcher extends PhraseMatcher {
for (PhraseQuery.PostingsAndFreq posting : postings) {
postingsAndPositions.add(new PostingsAndPosition(posting.postings, posting.position));
}
- this.postings = postingsAndPositions.toArray(new PostingsAndPosition[0]);
+ this.postings = postingsAndPositions.toArray(PostingsAndPosition[]::new);
}
@Override
diff --git a/lucene/core/src/java/org/apache/lucene/search/IndexSearcher.java b/lucene/core/src/java/org/apache/lucene/search/IndexSearcher.java
index 9359b05224a..972c4a5ef64 100644
--- a/lucene/core/src/java/org/apache/lucene/search/IndexSearcher.java
+++ b/lucene/core/src/java/org/apache/lucene/search/IndexSearcher.java
@@ -1016,7 +1016,7 @@ public class IndexSearcher {
private final int maxDocs;
public LeafSlice(List<LeafReaderContextPartition> partitions) {
- this(partitions.toArray(new LeafReaderContextPartition[0]));
+ this(partitions.toArray(LeafReaderContextPartition[]::new));
}
private static LeafSlice entireSegments(List<LeafReaderContext> contexts) {
diff --git a/lucene/core/src/java/org/apache/lucene/search/MultiCollector.java b/lucene/core/src/java/org/apache/lucene/search/MultiCollector.java
index e126c63211d..409e9ae30b5 100644
--- a/lucene/core/src/java/org/apache/lucene/search/MultiCollector.java
+++ b/lucene/core/src/java/org/apache/lucene/search/MultiCollector.java
@@ -178,7 +178,7 @@ public class MultiCollector implements Collector {
private final boolean skipNonCompetitiveScores;
private MultiLeafCollector(List<LeafCollector> collectors, boolean skipNonCompetitive) {
- this.collectors = collectors.toArray(new LeafCollector[collectors.size()]);
+ this.collectors = collectors.toArray(LeafCollector[]::new);
this.skipNonCompetitiveScores = skipNonCompetitive;
this.minScores = this.skipNonCompetitiveScores ? new float[this.collectors.length] : null;
}
diff --git a/lucene/core/src/java/org/apache/lucene/search/MultiPhraseQuery.java b/lucene/core/src/java/org/apache/lucene/search/MultiPhraseQuery.java
index 83510c02991..fc5e48ee059 100644
--- a/lucene/core/src/java/org/apache/lucene/search/MultiPhraseQuery.java
+++ b/lucene/core/src/java/org/apache/lucene/search/MultiPhraseQuery.java
@@ -140,7 +140,7 @@ public class MultiPhraseQuery extends Query {
/** Builds a {@link MultiPhraseQuery}. */
public MultiPhraseQuery build() {
- Term[][] termArraysArray = termArrays.toArray(new Term[termArrays.size()][]);
+ Term[][] termArraysArray = termArrays.toArray(Term[][]::new);
return new MultiPhraseQuery(field, termArraysArray, positions.toArray(), slop);
}
}
@@ -234,7 +234,7 @@ public class MultiPhraseQuery extends Query {
return similarity.scorer(
boost,
searcher.collectionStatistics(field),
- allTermStats.toArray(new TermStatistics[allTermStats.size()]));
+ allTermStats.toArray(TermStatistics[]::new));
}
}
@@ -434,7 +434,7 @@ public class MultiPhraseQuery extends Query {
cost += sub.cost();
}
this.cost = cost;
- this.subs = subs.toArray(new PostingsEnum[subs.size()]);
+ this.subs = subs.toArray(PostingsEnum[]::new);
}
@Override
diff --git a/lucene/core/src/java/org/apache/lucene/search/PhraseQuery.java b/lucene/core/src/java/org/apache/lucene/search/PhraseQuery.java
index 12255474739..32705a0d8f6 100644
--- a/lucene/core/src/java/org/apache/lucene/search/PhraseQuery.java
+++ b/lucene/core/src/java/org/apache/lucene/search/PhraseQuery.java
@@ -156,7 +156,7 @@ public class PhraseQuery extends Query {
/** Build a phrase query based on the terms that have been added. */
public PhraseQuery build() {
- Term[] terms = this.terms.toArray(new Term[0]);
+ Term[] terms = this.terms.toArray(Term[]::new);
return new PhraseQuery(slop, terms, positions.toArray());
}
}
diff --git a/lucene/core/src/java/org/apache/lucene/search/SynonymQuery.java b/lucene/core/src/java/org/apache/lucene/search/SynonymQuery.java
index b5b7393fe1e..06a05affcfc 100644
--- a/lucene/core/src/java/org/apache/lucene/search/SynonymQuery.java
+++ b/lucene/core/src/java/org/apache/lucene/search/SynonymQuery.java
@@ -103,7 +103,7 @@ public final class SynonymQuery extends Query {
/** Builds the {@link SynonymQuery}. */
public SynonymQuery build() {
terms.sort(Comparator.comparing(a -> a.term));
- return new SynonymQuery(terms.toArray(new TermAndBoost[0]), field);
+ return new SynonymQuery(terms.toArray(TermAndBoost[]::new), field);
}
}
diff --git a/lucene/core/src/java/org/apache/lucene/store/FSDirectory.java b/lucene/core/src/java/org/apache/lucene/store/FSDirectory.java
index 9154e21115f..ec3a32f5781 100644
--- a/lucene/core/src/java/org/apache/lucene/store/FSDirectory.java
+++ b/lucene/core/src/java/org/apache/lucene/store/FSDirectory.java
@@ -182,7 +182,7 @@ public abstract class FSDirectory extends BaseDirectory {
}
}
- String[] array = entries.toArray(new String[0]);
+ String[] array = entries.toArray(String[]::new);
// Directory.listAll javadocs state that we sort the results here, so we don't let filesystem
// specifics leak out of this abstraction:
Arrays.sort(array);
diff --git a/lucene/core/src/java/org/apache/lucene/store/FileSwitchDirectory.java b/lucene/core/src/java/org/apache/lucene/store/FileSwitchDirectory.java
index 36889486b5d..76ff9cfca44 100644
--- a/lucene/core/src/java/org/apache/lucene/store/FileSwitchDirectory.java
+++ b/lucene/core/src/java/org/apache/lucene/store/FileSwitchDirectory.java
@@ -135,7 +135,7 @@ public class FileSwitchDirectory extends Directory {
if (exc != null && files.isEmpty()) {
throw exc;
}
- String[] result = files.toArray(new String[files.size()]);
+ String[] result = files.toArray(String[]::new);
Arrays.sort(result);
return result;
}
diff --git a/lucene/core/src/java/org/apache/lucene/store/NRTCachingDirectory.java b/lucene/core/src/java/org/apache/lucene/store/NRTCachingDirectory.java
index 16d6aa22ce5..fe4221c9916 100644
--- a/lucene/core/src/java/org/apache/lucene/store/NRTCachingDirectory.java
+++ b/lucene/core/src/java/org/apache/lucene/store/NRTCachingDirectory.java
@@ -115,7 +115,7 @@ public class NRTCachingDirectory extends FilterDirectory implements Accountable
final Set<String> files = new TreeSet<>();
Collections.addAll(files, cacheDirectory.listAll());
Collections.addAll(files, in.listAll());
- return files.toArray(new String[0]);
+ return files.toArray(String[]::new);
}
@Override
diff --git a/lucene/core/src/java/org/apache/lucene/util/AttributeSource.java b/lucene/core/src/java/org/apache/lucene/util/AttributeSource.java
index 9d8f9bf65dc..49eeb43563c 100644
--- a/lucene/core/src/java/org/apache/lucene/util/AttributeSource.java
+++ b/lucene/core/src/java/org/apache/lucene/util/AttributeSource.java
@@ -163,7 +163,7 @@ public class AttributeSource {
clazz = clazz.getSuperclass();
} while (clazz != null);
@SuppressWarnings({"unchecked", "rawtypes"})
- final Class<? extends Attribute>[] a = intfSet.toArray(new Class[intfSet.size()]);
+ final Class<? extends Attribute>[] a = intfSet.toArray(Class[]::new);
return a;
}
};
diff --git a/lucene/core/src/java/org/apache/lucene/util/QueryBuilder.java b/lucene/core/src/java/org/apache/lucene/util/QueryBuilder.java
index b95ba73f449..cdf03cf672d 100644
--- a/lucene/core/src/java/org/apache/lucene/util/QueryBuilder.java
+++ b/lucene/core/src/java/org/apache/lucene/util/QueryBuilder.java
@@ -478,9 +478,9 @@ public class QueryBuilder {
if (positionIncrement > 0 && multiTerms.size() > 0) {
if (enablePositionIncrements) {
- mpqb.add(multiTerms.toArray(new Term[0]), position);
+ mpqb.add(multiTerms.toArray(Term[]::new), position);
} else {
- mpqb.add(multiTerms.toArray(new Term[0]));
+ mpqb.add(multiTerms.toArray(Term[]::new));
}
multiTerms.clear();
}
@@ -489,9 +489,9 @@ public class QueryBuilder {
}
if (enablePositionIncrements) {
- mpqb.add(multiTerms.toArray(new Term[0]), position);
+ mpqb.add(multiTerms.toArray(Term[]::new), position);
} else {
- mpqb.add(multiTerms.toArray(new Term[0]));
+ mpqb.add(multiTerms.toArray(Term[]::new));
}
return mpqb.build();
}
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestMaxTermFrequency.java b/lucene/core/src/test/org/apache/lucene/index/TestMaxTermFrequency.java
index a0c05f19bef..7715045549c 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestMaxTermFrequency.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestMaxTermFrequency.java
@@ -90,7 +90,7 @@ public class TestMaxTermFrequency extends LuceneTestCase {
}
expected.add(max);
Collections.shuffle(terms, random());
- return Arrays.toString(terms.toArray(new String[terms.size()]));
+ return Arrays.toString(terms.toArray(String[]::new));
}
/** Simple similarity that encodes maxTermFrequency directly as a byte */
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestTieredMergePolicy.java b/lucene/core/src/test/org/apache/lucene/index/TestTieredMergePolicy.java
index 839f02c877b..ef8b2bd7a5a 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestTieredMergePolicy.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestTieredMergePolicy.java
@@ -702,9 +702,7 @@ public class TestTieredMergePolicy extends BaseMergePolicyTestCase {
}
reader.close();
- Term[] termsToDel = new Term[toDelete.size()];
- toDelete.toArray(termsToDel);
- w.deleteDocuments(termsToDel);
+ w.deleteDocuments(toDelete.toArray(Term[]::new));
w.commit();
return toDelete.size();
}
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestPointQueries.java b/lucene/core/src/test/org/apache/lucene/search/TestPointQueries.java
index 24fed1275f8..f99df7afb4f 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestPointQueries.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestPointQueries.java
@@ -2114,7 +2114,7 @@ public class TestPointQueries extends LuceneTestCase {
}
PointInSetQuery query =
- (PointInSetQuery) BinaryPoint.newSetQuery("field", values.toArray(new byte[][] {}));
+ (PointInSetQuery) BinaryPoint.newSetQuery("field", values.toArray(byte[][]::new));
Collection<byte[]> packedPoints = query.getPackedPoints();
assertEquals(numValues, packedPoints.size());
Iterator<byte[]> iterator = packedPoints.iterator();
diff --git a/lucene/core/src/test/org/apache/lucene/util/automaton/TestCompiledAutomaton.java b/lucene/core/src/test/org/apache/lucene/util/automaton/TestCompiledAutomaton.java
index b4e23f6a2b9..472c692a175 100644
--- a/lucene/core/src/test/org/apache/lucene/util/automaton/TestCompiledAutomaton.java
+++ b/lucene/core/src/test/org/apache/lucene/util/automaton/TestCompiledAutomaton.java
@@ -101,7 +101,7 @@ public class TestCompiledAutomaton extends LuceneTestCase {
while (terms.size() != numTerms) {
terms.add(randomString());
}
- testTerms(numTerms * 100, terms.toArray(new String[terms.size()]));
+ testTerms(numTerms * 100, terms.toArray(String[]::new));
}
private String randomString() {
diff --git a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestDistinctValuesCollector.java b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestDistinctValuesCollector.java
index 3bf1a4024b4..a55ba667694 100644
--- a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestDistinctValuesCollector.java
+++ b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestDistinctValuesCollector.java
@@ -479,10 +479,7 @@ public class TestDistinctValuesCollector extends AbstractGroupingTestCase {
w.close();
return new IndexContext(
- dir,
- reader,
- searchTermToGroupCounts,
- contentStrings.toArray(new String[contentStrings.size()]));
+ dir, reader, searchTermToGroupCounts, contentStrings.toArray(String[]::new));
}
private record IndexContext(
diff --git a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
index 2c4db0f8eb2..2a312e31031 100644
--- a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
+++ b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
@@ -456,7 +456,7 @@ public class TestGrouping extends LuceneTestCase {
mvalTopGroups.withinGroupSort,
mvalTopGroups.totalHitCount,
mvalTopGroups.totalGroupedHitCount,
- groups.toArray(new GroupDocs[groups.size()]),
+ groups.toArray(GroupDocs[]::new),
Float.NaN);
}
fail();
@@ -500,7 +500,7 @@ public class TestGrouping extends LuceneTestCase {
}
// Break ties:
sortFields.add(new SortField("id", SortField.Type.INT));
- return new Sort(sortFields.toArray(new SortField[sortFields.size()]));
+ return new Sort(sortFields.toArray(SortField[]::new));
}
private Comparator<GroupDoc> getComparator(Sort sort) {
diff --git a/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/UnifiedHighlighter.java b/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/UnifiedHighlighter.java
index 0e24931b4bd..14c423f16a6 100644
--- a/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/UnifiedHighlighter.java
+++ b/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/UnifiedHighlighter.java
@@ -1213,7 +1213,7 @@ public class UnifiedHighlighter {
filteredTerms.add(term.bytes());
}
}
- return filteredTerms.toArray(new BytesRef[filteredTerms.size()]);
+ return filteredTerms.toArray(BytesRef[]::new);
}
protected PhraseHelper getPhraseHelper(
diff --git a/lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java b/lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java
index 964f039e543..c22d3da5890 100644
--- a/lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java
+++ b/lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java
@@ -168,7 +168,7 @@ public abstract class BaseFragmentsBuilder implements FragmentsBuilder {
fragments.add(
makeFragment(buffer, nextValueIndex, values, fragInfo, preTags, postTags, encoder));
}
- return fragments.toArray(new String[fragments.size()]);
+ return fragments.toArray(String[]::new);
}
protected Field[] getFields(IndexReader reader, int docId, final String fieldName)
diff --git a/lucene/highlighter/src/test/org/apache/lucene/search/uhighlight/TestUnifiedHighlighterTermVec.java b/lucene/highlighter/src/test/org/apache/lucene/search/uhighlight/TestUnifiedHighlighterTermVec.java
index 8c342a212a8..1517d517b48 100644
--- a/lucene/highlighter/src/test/org/apache/lucene/search/uhighlight/TestUnifiedHighlighterTermVec.java
+++ b/lucene/highlighter/src/test/org/apache/lucene/search/uhighlight/TestUnifiedHighlighterTermVec.java
@@ -144,7 +144,7 @@ public class TestUnifiedHighlighterTermVec extends UnifiedHighlighterTestBase {
TopDocs topDocs = searcher.search(query, 10, Sort.INDEXORDER);
assertEquals(numDocs, topDocs.totalHits.value());
Map<String, String[]> fieldToSnippets =
- highlighter.highlightFields(fields.toArray(new String[numTvFields]), query, topDocs);
+ highlighter.highlightFields(fields.toArray(String[]::new), query, topDocs);
String[] expectedSnippetsByDoc = new String[numDocs];
Arrays.fill(expectedSnippetsByDoc, "some <b>test</b> text");
for (String field : fields) {
diff --git a/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java b/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java
index 76cd65aaae3..2e25c1d308c 100644
--- a/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java
+++ b/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java
@@ -1331,10 +1331,10 @@ public class TestJoinUtil extends LuceneTestCase {
Set<ScoreMode> scoreModes = EnumSet.allOf(ScoreMode.class);
ScoreMode scoreMode1 =
- scoreModes.toArray(new ScoreMode[0])[random().nextInt(scoreModes.size())];
+ scoreModes.toArray(ScoreMode[]::new)[random().nextInt(scoreModes.size())];
scoreModes.remove(scoreMode1);
ScoreMode scoreMode2 =
- scoreModes.toArray(new ScoreMode[0])[random().nextInt(scoreModes.size())];
+ scoreModes.toArray(ScoreMode[]::new)[random().nextInt(scoreModes.size())];
final Query x;
try (IndexReader r = w.getReader()) {
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/models/search/MLTConfig.java b/lucene/luke/src/java/org/apache/lucene/luke/models/search/MLTConfig.java
index a5008e62698..bb860972b2d 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/models/search/MLTConfig.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/models/search/MLTConfig.java
@@ -74,7 +74,7 @@ public final class MLTConfig {
}
public String[] getFieldNames() {
- return fields.toArray(new String[fields.size()]);
+ return fields.toArray(String[]::new);
}
public int getMaxDocFreq() {
diff --git a/lucene/queries/src/java/org/apache/lucene/queries/mlt/MoreLikeThis.java b/lucene/queries/src/java/org/apache/lucene/queries/mlt/MoreLikeThis.java
index 12bb1ea020a..2d219938e1d 100644
--- a/lucene/queries/src/java/org/apache/lucene/queries/mlt/MoreLikeThis.java
+++ b/lucene/queries/src/java/org/apache/lucene/queries/mlt/MoreLikeThis.java
@@ -555,7 +555,7 @@ public final class MoreLikeThis {
if (fieldNames == null) {
// gather list of valid fields from lucene
Collection<String> fields = FieldInfos.getIndexedFields(ir);
- fieldNames = fields.toArray(new String[fields.size()]);
+ fieldNames = fields.toArray(String[]::new);
}
return createQuery(retrieveTerms(docNum));
@@ -569,7 +569,7 @@ public final class MoreLikeThis {
if (fieldNames == null) {
// gather list of valid fields from lucene
Collection<String> fields = FieldInfos.getIndexedFields(ir);
- fieldNames = fields.toArray(new String[fields.size()]);
+ fieldNames = fields.toArray(String[]::new);
}
return createQuery(retrieveTerms(filteredDocument));
}
diff --git a/lucene/queryparser/src/java/org/apache/lucene/queryparser/complexPhrase/ComplexPhraseQueryParser.java b/lucene/queryparser/src/java/org/apache/lucene/queryparser/complexPhrase/ComplexPhraseQueryParser.java
index dbef2f47ea6..34803644413 100644
--- a/lucene/queryparser/src/java/org/apache/lucene/queryparser/complexPhrase/ComplexPhraseQueryParser.java
+++ b/lucene/queryparser/src/java/org/apache/lucene/queryparser/complexPhrase/ComplexPhraseQueryParser.java
@@ -345,7 +345,7 @@ public class ComplexPhraseQueryParser extends QueryParser {
i += 1;
}
- SpanQuery[] includeClauses = positiveClauses.toArray(new SpanQuery[positiveClauses.size()]);
+ SpanQuery[] includeClauses = positiveClauses.toArray(SpanQuery[]::new);
SpanQuery include = null;
if (includeClauses.length == 1) {
@@ -410,11 +410,11 @@ public class ComplexPhraseQueryParser extends QueryParser {
if (ors.size() == 0) {
return;
}
- SpanOrQuery soq = new SpanOrQuery(ors.toArray(new SpanQuery[ors.size()]));
+ SpanOrQuery soq = new SpanOrQuery(ors.toArray(SpanQuery[]::new));
if (nots.size() == 0) {
spanClauses.add(soq);
} else {
- SpanOrQuery snqs = new SpanOrQuery(nots.toArray(new SpanQuery[nots.size()]));
+ SpanOrQuery snqs = new SpanOrQuery(nots.toArray(SpanQuery[]::new));
SpanNotQuery snq = new SpanNotQuery(soq, snqs);
spanClauses.add(snq);
}
diff --git a/lucene/sandbox/src/test/org/apache/lucene/sandbox/codecs/idversion/TestIDVersionPostingsFormat.java b/lucene/sandbox/src/test/org/apache/lucene/sandbox/codecs/idversion/TestIDVersionPostingsFormat.java
index a34fbfa6db5..cf53b126c43 100644
--- a/lucene/sandbox/src/test/org/apache/lucene/sandbox/codecs/idversion/TestIDVersionPostingsFormat.java
+++ b/lucene/sandbox/src/test/org/apache/lucene/sandbox/codecs/idversion/TestIDVersionPostingsFormat.java
@@ -694,7 +694,7 @@ public class TestIDVersionPostingsFormat extends LuceneTestCase {
while (idsSeen.size() < numIDs) {
idsSeen.add(idsSource.next());
}
- final String[] ids = idsSeen.toArray(new String[numIDs]);
+ final String[] ids = idsSeen.toArray(String[]::new);
final Object[] locks = new Object[ids.length];
for (int i = 0; i < locks.length; i++) {
diff --git a/lucene/test-framework/src/java/org/apache/lucene/tests/analysis/BaseTokenStreamTestCase.java b/lucene/test-framework/src/java/org/apache/lucene/tests/analysis/BaseTokenStreamTestCase.java
index a5ae8606b1b..5f419fed094 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/tests/analysis/BaseTokenStreamTestCase.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/tests/analysis/BaseTokenStreamTestCase.java
@@ -1418,10 +1418,10 @@ public abstract class BaseTokenStreamTestCase extends LuceneTestCase {
// offset + pos + posLength + type
assertTokenStreamContents(
ts,
- tokens.toArray(new String[tokens.size()]),
+ tokens.toArray(String[]::new),
toIntArray(startOffsets),
toIntArray(endOffsets),
- types.toArray(new String[types.size()]),
+ types.toArray(String[]::new),
toIntArray(positions),
toIntArray(positionLengths),
text.length(),
@@ -1430,10 +1430,10 @@ public abstract class BaseTokenStreamTestCase extends LuceneTestCase {
// offset + pos + type
assertTokenStreamContents(
ts,
- tokens.toArray(new String[tokens.size()]),
+ tokens.toArray(String[]::new),
toIntArray(startOffsets),
toIntArray(endOffsets),
- types.toArray(new String[types.size()]),
+ types.toArray(String[]::new),
toIntArray(positions),
null,
text.length(),
@@ -1442,7 +1442,7 @@ public abstract class BaseTokenStreamTestCase extends LuceneTestCase {
// offset + pos + posLength
assertTokenStreamContents(
ts,
- tokens.toArray(new String[tokens.size()]),
+ tokens.toArray(String[]::new),
toIntArray(startOffsets),
toIntArray(endOffsets),
null,
@@ -1454,7 +1454,7 @@ public abstract class BaseTokenStreamTestCase extends LuceneTestCase {
// offset + pos
assertTokenStreamContents(
ts,
- tokens.toArray(new String[tokens.size()]),
+ tokens.toArray(String[]::new),
toIntArray(startOffsets),
toIntArray(endOffsets),
null,
@@ -1466,7 +1466,7 @@ public abstract class BaseTokenStreamTestCase extends LuceneTestCase {
// offset
assertTokenStreamContents(
ts,
- tokens.toArray(new String[tokens.size()]),
+ tokens.toArray(String[]::new),
toIntArray(startOffsets),
toIntArray(endOffsets),
null,
@@ -1476,7 +1476,7 @@ public abstract class BaseTokenStreamTestCase extends LuceneTestCase {
graphOffsetsAreCorrect);
} else {
// terms only
- assertTokenStreamContents(ts, tokens.toArray(new String[tokens.size()]));
+ assertTokenStreamContents(ts, tokens.toArray(String[]::new));
}
a.normalize("dummy", text);
diff --git a/lucene/test-framework/src/java/org/apache/lucene/tests/index/BaseTermVectorsFormatTestCase.java b/lucene/test-framework/src/java/org/apache/lucene/tests/index/BaseTermVectorsFormatTestCase.java
index b0d39784051..95e371c9503 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/tests/index/BaseTermVectorsFormatTestCase.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/tests/index/BaseTermVectorsFormatTestCase.java
@@ -392,7 +392,7 @@ public abstract class BaseTermVectorsFormatTestCase extends BaseIndexFileFormatT
fieldNames.add(TestUtil.randomSimpleString(random()));
fieldNames.remove("id");
}
- this.fieldNames = fieldNames.toArray(new String[0]);
+ this.fieldNames = fieldNames.toArray(String[]::new);
terms = new String[disctinctTerms];
termBytes = new BytesRef[disctinctTerms];
for (int i = 0; i < disctinctTerms; ++i) {
@@ -447,7 +447,7 @@ public abstract class BaseTermVectorsFormatTestCase extends BaseIndexFileFormatT
for (String term : tk.freqs.keySet()) {
uniqueTerms.add(new BytesRef(term));
}
- final BytesRef[] sortedTerms = uniqueTerms.toArray(new BytesRef[0]);
+ final BytesRef[] sortedTerms = uniqueTerms.toArray(BytesRef[]::new);
Arrays.sort(sortedTerms);
final TermsEnum termsEnum = terms.iterator();
for (int i = 0; i < sortedTerms.length; ++i) {