Use Java 17 `toList` method.

Test: atest ArtServiceTests
Change-Id: I33655cd8da459e60f2d119d801560ba61659d179
diff --git a/libartservice/service/java/com/android/server/art/ArtManagerLocal.java b/libartservice/service/java/com/android/server/art/ArtManagerLocal.java
index 1ec07f2..9310008 100644
--- a/libartservice/service/java/com/android/server/art/ArtManagerLocal.java
+++ b/libartservice/service/java/com/android/server/art/ArtManagerLocal.java
@@ -113,7 +113,6 @@
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 import java.util.function.Consumer;
-import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 /**
@@ -896,7 +895,7 @@
                                         .map(envVar -> Constants.getenv(envVar))
                                         .filter(classpath -> !TextUtils.isEmpty(classpath))
                                         .flatMap(classpath -> Arrays.stream(classpath.split(":")))
-                                        .collect(Collectors.toList());
+                                        .toList();
 
         var options = new MergeProfileOptions();
         options.forceMerge = true;
@@ -1215,7 +1214,7 @@
                                                              .refProfiles()
                                                              .stream()
                                                              .map(AidlUtils::toWritableProfilePath)
-                                                             .collect(Collectors.toList());
+                                                             .toList();
                 try {
                     // The artd method commits all files somewhat transactionally. Here, we are
                     // committing files transactionally at the package level just for simplicity. In
@@ -1325,7 +1324,7 @@
             List<String> packages = getDefaultPackages(snapshot, ReasonMapping.REASON_INACTIVE)
                                             .stream()
                                             .filter(pkg -> !excludedPackages.contains(pkg))
-                                            .collect(Collectors.toList());
+                                            .toList();
             if (!packages.isEmpty()) {
                 AsLog.i("Storage is low. Downgrading " + packages.size() + " inactive packages");
                 DexoptParams params =
@@ -1372,14 +1371,14 @@
                         .stream()
                         .filter(packageResult
                                 -> packageResult.getDexContainerFileDexoptResults()
-                                           .stream()
-                                           .anyMatch(fileResult
-                                                   -> DexFile.isProfileGuidedCompilerFilter(
-                                                              fileResult.getActualCompilerFilter())
-                                                           && fileResult.getStatus()
-                                                                   == DexoptResult.DEXOPT_SKIPPED))
+                                        .stream()
+                                        .anyMatch(fileResult
+                                                -> DexFile.isProfileGuidedCompilerFilter(
+                                                           fileResult.getActualCompilerFilter())
+                                                        && fileResult.getStatus()
+                                                                == DexoptResult.DEXOPT_SKIPPED))
                         .map(packageResult -> packageResult.getPackageName())
-                        .collect(Collectors.toList());
+                        .toList();
 
         DexoptParams dexoptParams = mainParams.toBuilder()
                                             .setFlags(ArtFlags.FLAG_FORCE_MERGE_PROFILE,
@@ -1428,7 +1427,7 @@
                         packages, true /* keepRecent */, true /* descending */);
         }
 
-        return packages.map(PackageState::getPackageName).collect(Collectors.toList());
+        return packages.map(PackageState::getPackageName).toList();
     }
 
     @RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
diff --git a/libartservice/service/java/com/android/server/art/ArtShellCommand.java b/libartservice/service/java/com/android/server/art/ArtShellCommand.java
index 3d86a40..21b24c7 100644
--- a/libartservice/service/java/com/android/server/art/ArtShellCommand.java
+++ b/libartservice/service/java/com/android/server/art/ArtShellCommand.java
@@ -82,7 +82,6 @@
 import java.util.concurrent.Executors;
 import java.util.function.Consumer;
 import java.util.function.Function;
-import java.util.stream.Collectors;
 
 /**
  * This class handles ART shell commands.
diff --git a/libartservice/service/java/com/android/server/art/BackgroundDexoptJobStatsReporter.java b/libartservice/service/java/com/android/server/art/BackgroundDexoptJobStatsReporter.java
index 106b1c6..251eec2 100644
--- a/libartservice/service/java/com/android/server/art/BackgroundDexoptJobStatsReporter.java
+++ b/libartservice/service/java/com/android/server/art/BackgroundDexoptJobStatsReporter.java
@@ -31,7 +31,6 @@
 
 import java.util.List;
 import java.util.Optional;
-import java.util.stream.Collectors;
 
 /**
  * This is a helper class to report the background DexOpt job metrics to StatsD.
@@ -90,7 +89,7 @@
                                 -> (fileResult.getExtendedStatusFlags()
                                            & DexoptResult.EXTENDED_SKIPPED_NO_DEX_CODE)
                                         == 0))
-                .collect(Collectors.toList());
+                .toList();
     }
 
     private static int getStatusForStats(
diff --git a/libartservice/service/java/com/android/server/art/DexUseManagerLocal.java b/libartservice/service/java/com/android/server/art/DexUseManagerLocal.java
index 51b63ca..fc30e35 100644
--- a/libartservice/service/java/com/android/server/art/DexUseManagerLocal.java
+++ b/libartservice/service/java/com/android/server/art/DexUseManagerLocal.java
@@ -207,7 +207,7 @@
                                         .stream()
                                         .map(loader -> loader.loadingPackageName())
                                         .collect(Collectors.toSet())))
-                .collect(Collectors.toList());
+                .toList();
     }
 
     /**
@@ -354,7 +354,7 @@
                                         -> !clc.equals(
                                                 SecondaryDexInfo.UNSUPPORTED_CLASS_LOADER_CONTEXT))
                                 .distinct()
-                                .collect(Collectors.toList());
+                                .toList();
                 String clc;
                 if (distinctClcList.size() == 0) {
                     clc = SecondaryDexInfo.UNSUPPORTED_CLASS_LOADER_CONTEXT;
diff --git a/libartservice/service/java/com/android/server/art/DexoptHelper.java b/libartservice/service/java/com/android/server/art/DexoptHelper.java
index 828a05c..b5f02ae 100644
--- a/libartservice/service/java/com/android/server/art/DexoptHelper.java
+++ b/libartservice/service/java/com/android/server/art/DexoptHelper.java
@@ -56,7 +56,6 @@
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Consumer;
 import java.util.function.Function;
-import java.util.stream.Collectors;
 
 /**
  * A helper class to handle dexopt.
@@ -127,9 +126,7 @@
             // create a separate cancellation signal for each of them so that the listeners don't
             // overwrite each other.
             List<CancellationSignal> childCancellationSignals =
-                    pkgStates.stream()
-                            .map(pkgState -> new CancellationSignal())
-                            .collect(Collectors.toList());
+                    pkgStates.stream().map(pkgState -> new CancellationSignal()).toList();
             cancellationSignal.setOnCancelListener(() -> {
                 for (CancellationSignal childCancellationSignal : childCancellationSignals) {
                     childCancellationSignal.cancel();
@@ -174,8 +171,7 @@
                 }
             }
 
-            List<PackageDexoptResult> results =
-                    futures.stream().map(Utils::getFuture).collect(Collectors.toList());
+            List<PackageDexoptResult> results = futures.stream().map(Utils::getFuture).toList();
 
             var result =
                     DexoptResult.create(params.getCompilerFilter(), params.getReason(), results);
@@ -187,7 +183,7 @@
                     List<PackageDexoptResult> filteredResults =
                             results.stream()
                                     .filter(PackageDexoptResult::hasUpdatedArtifacts)
-                                    .collect(Collectors.toList());
+                                    .toList();
                     if (!filteredResults.isEmpty()) {
                         var resultForCallback = DexoptResult.create(
                                 params.getCompilerFilter(), params.getReason(), filteredResults);
diff --git a/libartservice/service/java/com/android/server/art/DumpHelper.java b/libartservice/service/java/com/android/server/art/DumpHelper.java
index 419c55f..9578652 100644
--- a/libartservice/service/java/com/android/server/art/DumpHelper.java
+++ b/libartservice/service/java/com/android/server/art/DumpHelper.java
@@ -215,7 +215,7 @@
         List<DexLoader> otherApps =
                 dexLoaders.stream()
                         .filter(loader -> DexUseManagerLocal.isLoaderOtherApp(loader, packageName))
-                        .collect(Collectors.toList());
+                        .toList();
         if (!otherApps.isEmpty()) {
             ipw.printf("used by other apps: [%s]\n",
                     otherApps.stream()
diff --git a/libartservice/service/java/com/android/server/art/PrimaryDexUtils.java b/libartservice/service/java/com/android/server/art/PrimaryDexUtils.java
index c37fdbe..3fb8bda 100644
--- a/libartservice/service/java/com/android/server/art/PrimaryDexUtils.java
+++ b/libartservice/service/java/com/android/server/art/PrimaryDexUtils.java
@@ -60,7 +60,7 @@
                 .stream()
                 .map(builder -> builder.build())
                 .filter(info -> info.hasCode())
-                .collect(Collectors.toList());
+                .toList();
     }
 
     /**
@@ -74,7 +74,7 @@
                 .stream()
                 .map(builder -> builder.buildDetailed())
                 .filter(info -> info.hasCode())
-                .collect(Collectors.toList());
+                .toList();
     }
 
     /** Returns the basic information about a dex file specified by {@code splitName}. */
diff --git a/libartservice/service/java/com/android/server/art/Utils.java b/libartservice/service/java/com/android/server/art/Utils.java
index 9de244f..07168aa 100644
--- a/libartservice/service/java/com/android/server/art/Utils.java
+++ b/libartservice/service/java/com/android/server/art/Utils.java
@@ -73,7 +73,6 @@
 import java.util.concurrent.Executor;
 import java.util.concurrent.Future;
 import java.util.function.Supplier;
-import java.util.stream.Collectors;
 
 /** @hide */
 @RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
@@ -143,7 +142,7 @@
                         -> Abi.create(name, VMRuntime.getInstructionSet(name),
                                 name.equals(pkgPrimaryAbi.name())))
                 .sorted(Comparator.comparing(Abi::isPrimaryAbi).reversed())
-                .collect(Collectors.toList());
+                .toList();
     }
 
     @NonNull
diff --git a/libartservice/service/javatests/com/android/server/art/DexoptHelperTest.java b/libartservice/service/javatests/com/android/server/art/DexoptHelperTest.java
index f6ed721..b0c6725 100644
--- a/libartservice/service/javatests/com/android/server/art/DexoptHelperTest.java
+++ b/libartservice/service/javatests/com/android/server/art/DexoptHelperTest.java
@@ -73,7 +73,6 @@
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.function.Consumer;
-import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 @SmallTest
@@ -669,7 +668,7 @@
                            .getPackageDexoptResults()
                            .stream()
                            .map(PackageDexoptResult::getPackageName)
-                           .collect(Collectors.toList()))
+                           .toList())
                 .containsExactly(PKG_NAME_FOO);
     }
 
@@ -693,8 +692,7 @@
         progressCallbackExecutor.runAll();
 
         List<DexContainerFileDexoptResult> fileResults =
-                Stream.concat(mPrimaryResults.stream(), mSecondaryResults.stream())
-                        .collect(Collectors.toList());
+                Stream.concat(mPrimaryResults.stream(), mSecondaryResults.stream()).toList();
 
         InOrder inOrder = inOrder(progressCallback);
         inOrder.verify(progressCallback)
@@ -843,9 +841,8 @@
         assertThat(packageResult.getPackageName()).isEqualTo(packageName);
         assertThat(packageResult.getStatus()).isEqualTo(status);
         assertThat(packageResult.getDexContainerFileDexoptResults())
-                .containsExactlyElementsIn(dexContainerFileDexoptResults.stream()
-                                                   .flatMap(r -> r.stream())
-                                                   .collect(Collectors.toList()));
+                .containsExactlyElementsIn(
+                        dexContainerFileDexoptResults.stream().flatMap(r -> r.stream()).toList());
     }
 
     /** An executor that delays execution until `runAll` is called. */
diff --git a/libartservice/service/javatests/com/android/server/art/PrimaryDexopterTest.java b/libartservice/service/javatests/com/android/server/art/PrimaryDexopterTest.java
index 5cc201c..02ae2fe 100644
--- a/libartservice/service/javatests/com/android/server/art/PrimaryDexopterTest.java
+++ b/libartservice/service/javatests/com/android/server/art/PrimaryDexopterTest.java
@@ -62,7 +62,6 @@
 import java.util.concurrent.Future;
 import java.util.concurrent.Semaphore;
 import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
 import java.util.zip.ZipFile;
 
 @SmallTest
@@ -693,7 +692,7 @@
         assertThat(mPrimaryDexopter.dexopt()
                            .stream()
                            .map(DexContainerFileDexoptResult::getStatus)
-                           .collect(Collectors.toList()))
+                           .toList())
                 .containsExactly(DexoptResult.DEXOPT_CANCELLED);
 
         // It shouldn't continue after being cancelled on the first file.
@@ -734,10 +733,7 @@
 
         mCancellationSignal.cancel();
 
-        assertThat(results.get()
-                           .stream()
-                           .map(DexContainerFileDexoptResult::getStatus)
-                           .collect(Collectors.toList()))
+        assertThat(results.get().stream().map(DexContainerFileDexoptResult::getStatus).toList())
                 .containsExactly(DexoptResult.DEXOPT_CANCELLED);
 
         // It shouldn't continue after being cancelled on the first file.
diff --git a/libartservice/service/javatests/com/android/server/art/model/DexoptParamsTest.java b/libartservice/service/javatests/com/android/server/art/model/DexoptParamsTest.java
index beadb31..1ded5da 100644
--- a/libartservice/service/javatests/com/android/server/art/model/DexoptParamsTest.java
+++ b/libartservice/service/javatests/com/android/server/art/model/DexoptParamsTest.java
@@ -29,7 +29,6 @@
 import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
 import java.util.Arrays;
-import java.util.stream.Collectors;
 
 @SmallTest
 @RunWith(AndroidJUnit4.class)
@@ -182,7 +181,7 @@
         assertThat(Arrays.stream(DexoptParams.class.getDeclaredFields())
                            .filter(field -> !Modifier.isStatic(field.getModifiers()))
                            .map(Field::getName)
-                           .collect(Collectors.toList()))
+                           .toList())
                 .containsExactly(
                         "mFlags", "mCompilerFilter", "mPriorityClass", "mReason", "mSplitName");
     }