diff --git a/HMCL/src/main/java/moe/mickey/minecraft/skin/fx/SkinAnimation.java b/HMCL/src/main/java/moe/mickey/minecraft/skin/fx/SkinAnimation.java index 2899b0ea0..798922a36 100644 --- a/HMCL/src/main/java/moe/mickey/minecraft/skin/fx/SkinAnimation.java +++ b/HMCL/src/main/java/moe/mickey/minecraft/skin/fx/SkinAnimation.java @@ -3,8 +3,8 @@ package moe.mickey.minecraft.skin.fx; import javafx.event.ActionEvent; import javafx.event.EventHandler; +import java.util.ArrayList; import java.util.Arrays; -import java.util.LinkedList; import java.util.List; public class SkinAnimation { @@ -14,7 +14,7 @@ public class SkinAnimation { @Deprecated public SkinAnimation() { - this.transitions = new LinkedList<>(); + this.transitions = new ArrayList<>(); } public SkinAnimation(int weight, SkinTransition... transitions) { diff --git a/HMCL/src/main/java/moe/mickey/minecraft/skin/fx/SkinAnimationPlayer.java b/HMCL/src/main/java/moe/mickey/minecraft/skin/fx/SkinAnimationPlayer.java index a17d17f1d..683b478fa 100644 --- a/HMCL/src/main/java/moe/mickey/minecraft/skin/fx/SkinAnimationPlayer.java +++ b/HMCL/src/main/java/moe/mickey/minecraft/skin/fx/SkinAnimationPlayer.java @@ -2,14 +2,15 @@ package moe.mickey.minecraft.skin.fx; import javafx.animation.AnimationTimer; +import java.util.ArrayList; import java.util.Arrays; -import java.util.LinkedList; +import java.util.List; import java.util.Random; public class SkinAnimationPlayer { protected final Random random = new Random(); - protected LinkedList animations = new LinkedList<>(); + protected List animations = new ArrayList<>(); protected SkinAnimation playing; protected boolean running; protected int weightedSum = 0; @@ -28,7 +29,7 @@ public class SkinAnimationPlayer { } playing = tmp; if (playing == null && animations.size() > 0) - playing = animations.getLast(); + playing = animations.get(animations.size() - 1); if (playing != null) { playing.playFromStart(); lastPlayTime = now; diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLModpackInstallTask.java b/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLModpackInstallTask.java index b97e024d9..4f30b3cfb 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLModpackInstallTask.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLModpackInstallTask.java @@ -33,7 +33,7 @@ import org.jackhuang.hmcl.util.io.FileUtils; import java.io.File; import java.io.IOException; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.List; public final class HMCLModpackInstallTask extends Task { @@ -42,8 +42,8 @@ public final class HMCLModpackInstallTask extends Task { private final HMCLGameRepository repository; private final DefaultDependencyManager dependency; private final Modpack modpack; - private final List> dependencies = new LinkedList<>(); - private final List> dependents = new LinkedList<>(); + private final List> dependencies = new ArrayList<>(1); + private final List> dependents = new ArrayList<>(4); public HMCLModpackInstallTask(Profile profile, File zipFile, Modpack modpack, String name) { dependency = profile.getDependency(); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Profiles.java b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Profiles.java index 3e02fd766..744b7ebed 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Profiles.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Profiles.java @@ -26,8 +26,8 @@ import org.jackhuang.hmcl.event.EventBus; import org.jackhuang.hmcl.event.RefreshedVersionsEvent; import java.io.File; +import java.util.ArrayList; import java.util.HashSet; -import java.util.LinkedList; import java.util.List; import java.util.function.Consumer; import java.util.stream.Collectors; @@ -204,7 +204,7 @@ public final class Profiles { return selectedVersion.get(); } - private static final List> versionsListeners = new LinkedList<>(); + private static final List> versionsListeners = new ArrayList<>(4); public static void registerVersionsListener(Consumer listener) { Profile profile = getSelectedProfile(); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ModpackFileSelectionPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ModpackFileSelectionPage.java index 36715424b..88836fb01 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ModpackFileSelectionPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ModpackFileSelectionPage.java @@ -35,7 +35,7 @@ import org.jackhuang.hmcl.util.StringUtils; import org.jackhuang.hmcl.util.io.FileUtils; import java.io.File; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; @@ -147,7 +147,7 @@ public final class ModpackFileSelectionPage extends StackPane implements WizardP @FXML private void onNext() { - LinkedList list = new LinkedList<>(); + ArrayList list = new ArrayList<>(); getFilesNeeded(rootNode, "minecraft", list); controller.getSettings().put(MODPACK_FILE_SELECTION, list); controller.onFinish(); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPage.java index 1c3282d60..5b4f30812 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPage.java @@ -95,7 +95,7 @@ public final class ModListPage extends ListPageBase loadingProperty().set(true)); modManager.refreshMods(); - return new LinkedList<>(modManager.getMods()); + return new ArrayList<>(modManager.getMods()); } } catch (IOException e) { throw new UncheckedIOException(e); @@ -118,10 +118,12 @@ public final class ModListPage extends ListPageBase res = chooser.showOpenMultipleDialog(Controllers.getStage()); - // It's guaranteed that succeeded and failed are thread safe here. - List succeeded = new LinkedList<>(); - List failed = new LinkedList<>(); if (res == null) return; + + // It's guaranteed that succeeded and failed are thread safe here. + List succeeded = new ArrayList<>(res.size()); + List failed = new ArrayList<>(); + Task.runAsync(() -> { for (File file : res) { try { @@ -135,7 +137,7 @@ public final class ModListPage extends ListPageBase { - List prompt = new LinkedList<>(); + List prompt = new ArrayList<>(1); if (!succeeded.isEmpty()) prompt.add(i18n("mods.add.success", String.join(", ", succeeded))); if (!failed.isEmpty()) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/MaintainTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/MaintainTask.java index 2179acbdc..7d556ece3 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/MaintainTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/MaintainTask.java @@ -283,7 +283,7 @@ public class MaintainTask extends Task { public static Version unique(Version version) { List libraries = new ArrayList<>(); - SimpleMultimap multimap = new SimpleMultimap(HashMap::new, LinkedList::new); + SimpleMultimap multimap = new SimpleMultimap(HashMap::new, ArrayList::new); for (Library library : version.getLibraries()) { String id = library.getGroupId() + ":" + library.getArtifactId(); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/fabric/FabricAPIInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/fabric/FabricAPIInstallTask.java index 45136d7a2..8dfadafae 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/fabric/FabricAPIInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/fabric/FabricAPIInstallTask.java @@ -24,8 +24,8 @@ import org.jackhuang.hmcl.task.Task; import java.io.IOException; import java.net.URL; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; import java.util.List; /** @@ -38,7 +38,7 @@ public final class FabricAPIInstallTask extends Task { private final DefaultDependencyManager dependencyManager; private final Version version; private final FabricAPIRemoteVersion remote; - private final List> dependencies = new LinkedList<>(); + private final List> dependencies = new ArrayList<>(1); public FabricAPIInstallTask(DefaultDependencyManager dependencyManager, Version version, FabricAPIRemoteVersion remoteVersion) { this.dependencyManager = dependencyManager; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/fabric/FabricInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/fabric/FabricInstallTask.java index 0ec185af9..0199bdd66 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/fabric/FabricInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/fabric/FabricInstallTask.java @@ -45,7 +45,7 @@ public final class FabricInstallTask extends Task { private final Version version; private final FabricRemoteVersion remote; private final GetTask launchMetaTask; - private final List> dependencies = new LinkedList<>(); + private final List> dependencies = new ArrayList<>(1); public FabricInstallTask(DefaultDependencyManager dependencyManager, Version version, FabricRemoteVersion remoteVersion) { this.dependencyManager = dependencyManager; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeNewInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeNewInstallTask.java index 824650029..8814d5e7a 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeNewInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeNewInstallTask.java @@ -182,8 +182,8 @@ public class ForgeNewInstallTask extends Task { private final DefaultGameRepository gameRepository; private final Version version; private final Path installer; - private final List> dependents = new LinkedList<>(); - private final List> dependencies = new LinkedList<>(); + private final List> dependents = new ArrayList<>(1); + private final List> dependencies = new ArrayList<>(1); private ForgeNewInstallProfile profile; private List processors; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeOldInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeOldInstallTask.java index 60d68e44a..f4c3da4c2 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeOldInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeOldInstallTask.java @@ -29,7 +29,7 @@ import org.jackhuang.hmcl.util.io.IOUtils; import java.io.*; import java.nio.file.Path; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipException; @@ -41,7 +41,7 @@ public class ForgeOldInstallTask extends Task { private final Version version; private final Path installer; private final String selfVersion; - private final List> dependencies = new LinkedList<>(); + private final List> dependencies = new ArrayList<>(1); ForgeOldInstallTask(DefaultDependencyManager dependencyManager, Version version, String selfVersion, Path installer) { this.dependencyManager = dependencyManager; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameAssetDownloadTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameAssetDownloadTask.java index 3b906b71f..4a01aaea8 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameAssetDownloadTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameAssetDownloadTask.java @@ -34,8 +34,8 @@ import java.io.IOException; import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; import java.util.List; import java.util.logging.Level; @@ -50,8 +50,8 @@ public final class GameAssetDownloadTask extends Task { private final AssetIndexInfo assetIndexInfo; private final Path assetIndexFile; private final boolean integrityCheck; - private final List> dependents = new LinkedList<>(); - private final List> dependencies = new LinkedList<>(); + private final List> dependents = new ArrayList<>(1); + private final List> dependencies = new ArrayList<>(); /** * Constructor. diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameAssetIndexDownloadTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameAssetIndexDownloadTask.java index b6a3f84e6..05c4604b4 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameAssetIndexDownloadTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameAssetIndexDownloadTask.java @@ -33,7 +33,7 @@ import org.jackhuang.hmcl.util.io.FileUtils; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.List; import java.util.logging.Level; @@ -49,7 +49,7 @@ public final class GameAssetIndexDownloadTask extends Task { private final AbstractDependencyManager dependencyManager; private final Version version; private final boolean forceDownloading; - private final List> dependencies = new LinkedList<>(); + private final List> dependencies = new ArrayList<>(1); /** * Constructor. diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameDownloadTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameDownloadTask.java index 5844bde9a..999e30ae2 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameDownloadTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameDownloadTask.java @@ -25,8 +25,8 @@ import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.util.CacheRepository; import java.io.File; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; import java.util.List; /** @@ -37,7 +37,7 @@ public final class GameDownloadTask extends Task { private final DefaultDependencyManager dependencyManager; private final String gameVersion; private final Version version; - private final List> dependencies = new LinkedList<>(); + private final List> dependencies = new ArrayList<>(); public GameDownloadTask(DefaultDependencyManager dependencyManager, String gameVersion, Version version) { this.dependencyManager = dependencyManager; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameInstallTask.java index 048deec2e..2fd3777c6 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameInstallTask.java @@ -23,9 +23,9 @@ import org.jackhuang.hmcl.game.Version; import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.util.gson.JsonUtils; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.LinkedList; import java.util.List; import static org.jackhuang.hmcl.download.LibraryAnalyzer.LibraryType.MINECRAFT; @@ -37,7 +37,7 @@ public class GameInstallTask extends Task { private final Version version; private final GameRemoteVersion remote; private final VersionJsonDownloadTask downloadTask; - private final List> dependencies = new LinkedList<>(); + private final List> dependencies = new ArrayList<>(1); public GameInstallTask(DefaultDependencyManager dependencyManager, Version version, GameRemoteVersion remoteVersion) { this.dependencyManager = dependencyManager; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameLibrariesTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameLibrariesTask.java index 523959859..09dfc4320 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameLibrariesTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameLibrariesTask.java @@ -29,7 +29,7 @@ import org.jackhuang.hmcl.util.io.FileUtils; import java.io.File; import java.io.IOException; import java.nio.file.Path; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.List; import java.util.logging.Level; @@ -45,7 +45,7 @@ public final class GameLibrariesTask extends Task { private final Version version; private final boolean integrityCheck; private final List libraries; - private final List> dependencies = new LinkedList<>(); + private final List> dependencies = new ArrayList<>(); /** * Constructor. diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameVerificationFixTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameVerificationFixTask.java index e9d765d2f..fe7010db6 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameVerificationFixTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameVerificationFixTask.java @@ -29,8 +29,8 @@ import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.FileSystem; import java.nio.file.Files; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; import java.util.List; /** @@ -41,7 +41,7 @@ public final class GameVerificationFixTask extends Task { private final DefaultDependencyManager dependencyManager; private final String gameVersion; private final Version version; - private final List> dependencies = new LinkedList<>(); + private final List> dependencies = new ArrayList<>(); public GameVerificationFixTask(DefaultDependencyManager dependencyManager, String gameVersion, Version version) { this.dependencyManager = dependencyManager; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/VersionJsonDownloadTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/VersionJsonDownloadTask.java index 9a049d3cf..f91b6e426 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/VersionJsonDownloadTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/VersionJsonDownloadTask.java @@ -24,8 +24,8 @@ import org.jackhuang.hmcl.task.GetTask; import org.jackhuang.hmcl.task.Task; import java.io.IOException; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; import java.util.List; /** @@ -35,8 +35,8 @@ import java.util.List; public final class VersionJsonDownloadTask extends Task { private final String gameVersion; private final DefaultDependencyManager dependencyManager; - private final List> dependents = new LinkedList<>(); - private final List> dependencies = new LinkedList<>(); + private final List> dependents = new ArrayList<>(1); + private final List> dependencies = new ArrayList<>(1); private final VersionList gameVersionList; public VersionJsonDownloadTask(String gameVersion, DefaultDependencyManager dependencyManager) { diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderInstallTask.java index 5999fc6fd..9d5113c2b 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderInstallTask.java @@ -23,9 +23,9 @@ import org.jackhuang.hmcl.game.*; import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.util.Lang; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.LinkedList; import java.util.List; /** @@ -38,8 +38,8 @@ public final class LiteLoaderInstallTask extends Task { private final DefaultDependencyManager dependencyManager; private final Version version; private final LiteLoaderRemoteVersion remote; - private final List> dependents = new LinkedList<>(); - private final List> dependencies = new LinkedList<>(); + private final List> dependents = new ArrayList<>(); + private final List> dependencies = new ArrayList<>(1); public LiteLoaderInstallTask(DefaultDependencyManager dependencyManager, Version version, LiteLoaderRemoteVersion remoteVersion) { this.dependencyManager = dependencyManager; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineInstallTask.java index 38c8eef0b..20c20830b 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineInstallTask.java @@ -56,8 +56,8 @@ public final class OptiFineInstallTask extends Task { private final Version version; private final OptiFineRemoteVersion remote; private final Path installer; - private final List> dependents = new LinkedList<>(); - private final List> dependencies = new LinkedList<>(); + private final List> dependents = new ArrayList<>(0); + private final List> dependencies = new ArrayList<>(1); private Path dest; private final Library optiFineLibrary; @@ -131,7 +131,7 @@ public final class OptiFineInstallTask extends Task { !LibraryAnalyzer.BOOTSTRAP_LAUNCHER_MAIN.equals(originalMainClass)) throw new UnsupportedInstallationException(UnsupportedInstallationException.UNSUPPORTED_LAUNCH_WRAPPER); - List libraries = new LinkedList<>(); + List libraries = new ArrayList<>(4); libraries.add(optiFineLibrary); FileUtils.copyFile(dest, gameRepository.getLibraryFile(version, optiFineInstallerLibrary).toPath()); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Arguments.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Arguments.java index 47f43b1de..7d26e7101 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Arguments.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Arguments.java @@ -110,7 +110,7 @@ public final class Arguments { public static final List DEFAULT_GAME_ARGUMENTS; static { - List jvm = new LinkedList<>(); + List jvm = new ArrayList<>(8); jvm.add(new RuledArgument(Collections.singletonList(new CompatibilityRule(CompatibilityRule.Action.ALLOW, new OSRestriction(OperatingSystem.WINDOWS))), Collections.singletonList("-XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump"))); jvm.add(new RuledArgument(Collections.singletonList(new CompatibilityRule(CompatibilityRule.Action.ALLOW, new OSRestriction(OperatingSystem.WINDOWS, "^10\\."))), Arrays.asList("-Dos.name=Windows 10", "-Dos.version=10.0"))); jvm.add(new StringArgument("-Djava.library.path=${natives_directory}")); @@ -120,7 +120,7 @@ public final class Arguments { jvm.add(new StringArgument("${classpath}")); DEFAULT_JVM_ARGUMENTS = Collections.unmodifiableList(jvm); - List game = new LinkedList<>(); + List game = new ArrayList<>(1); game.add(new RuledArgument(Collections.singletonList(new CompatibilityRule(CompatibilityRule.Action.ALLOW, null, Collections.singletonMap("has_custom_resolution", true))), Arrays.asList("--width", "${resolution_width}", "--height", "${resolution_height}"))); DEFAULT_GAME_ARGUMENTS = Collections.unmodifiableList(game); } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/ExtractRules.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/ExtractRules.java index e2d979852..915dd28ba 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/ExtractRules.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/ExtractRules.java @@ -17,8 +17,8 @@ */ package org.jackhuang.hmcl.game; +import java.util.ArrayList; import java.util.Collections; -import java.util.LinkedList; import java.util.List; /** @@ -36,7 +36,7 @@ public final class ExtractRules { } public ExtractRules(List exclude) { - this.exclude = new LinkedList<>(exclude); + this.exclude = new ArrayList<>(exclude); } public List getExclude() { diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java index 8682197a1..55d118e02 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java @@ -261,7 +261,7 @@ public class DefaultLauncher extends Launcher { res.add(version.getMainClass()); - res.addAll(Arguments.parseStringArguments(version.getMinecraftArguments().map(StringUtils::tokenize).orElseGet(LinkedList::new), configuration)); + res.addAll(Arguments.parseStringArguments(version.getMinecraftArguments().map(StringUtils::tokenize).orElseGet(ArrayList::new), configuration)); Map features = getFeatures(); version.getArguments().map(Arguments::getGame).ifPresent(arguments -> res.addAll(Arguments.parseArguments(arguments, configuration, features))); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MinecraftInstanceTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MinecraftInstanceTask.java index f30a5ce5a..4d4df3d6c 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MinecraftInstanceTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MinecraftInstanceTask.java @@ -27,7 +27,7 @@ import java.io.IOException; import java.nio.charset.Charset; import java.nio.file.*; import java.nio.file.attribute.BasicFileAttributes; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.List; import static org.jackhuang.hmcl.util.DigestUtils.digest; @@ -57,7 +57,7 @@ public final class MinecraftInstanceTask extends Task @Override public void execute() throws Exception { - List overrides = new LinkedList<>(); + List overrides = new ArrayList<>(); try (FileSystem fs = CompressingUtils.readonly(zipFile.toPath()).setEncoding(encoding).build()) { Path root = fs.getPath(subDirectory); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/curse/CurseCompletionTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/curse/CurseCompletionTask.java index 289bbe2b6..4e3f08d98 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/curse/CurseCompletionTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/curse/CurseCompletionTask.java @@ -32,8 +32,8 @@ import org.jackhuang.hmcl.util.io.NetworkUtils; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; @@ -52,7 +52,7 @@ public final class CurseCompletionTask extends Task { private final ModManager modManager; private final String version; private CurseManifest manifest; - private final List> dependencies = new LinkedList<>(); + private final List> dependencies = new ArrayList<>(); private final AtomicBoolean allNameKnown = new AtomicBoolean(true); private final AtomicInteger finished = new AtomicInteger(0); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/curse/CurseInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/curse/CurseInstallTask.java index 439180665..6876fdcbf 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/curse/CurseInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/curse/CurseInstallTask.java @@ -33,8 +33,8 @@ import org.jackhuang.hmcl.util.io.FileUtils; import java.io.File; import java.io.IOException; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; import java.util.List; /** @@ -52,8 +52,8 @@ public final class CurseInstallTask extends Task { private final String name; private final File run; private final ModpackConfiguration config; - private final List> dependents = new LinkedList<>(); - private final List> dependencies = new LinkedList<>(); + private final List> dependents = new ArrayList<>(4); + private final List> dependencies = new ArrayList<>(1); /** * Constructor. diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/curse/CurseManifestMinecraft.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/curse/CurseManifestMinecraft.java index 4a7071aff..ec6030fa8 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/curse/CurseManifestMinecraft.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/curse/CurseManifestMinecraft.java @@ -23,8 +23,8 @@ import org.jackhuang.hmcl.util.Immutable; import org.jackhuang.hmcl.util.StringUtils; import org.jackhuang.hmcl.util.gson.Validation; +import java.util.ArrayList; import java.util.Collections; -import java.util.LinkedList; import java.util.List; /** @@ -47,7 +47,7 @@ public final class CurseManifestMinecraft implements Validation { public CurseManifestMinecraft(String gameVersion, List modLoaders) { this.gameVersion = gameVersion; - this.modLoaders = new LinkedList<>(modLoaders); + this.modLoaders = new ArrayList<>(modLoaders); } public String getGameVersion() { diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/mcbbs/McbbsModpackCompletionTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/mcbbs/McbbsModpackCompletionTask.java index c9294d56e..4ed4083ae 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/mcbbs/McbbsModpackCompletionTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/mcbbs/McbbsModpackCompletionTask.java @@ -63,7 +63,7 @@ public class McbbsModpackCompletionTask extends CompletableFutureTask { private final File configurationFile; private ModpackConfiguration configuration; private McbbsModpackManifest manifest; - private final List> dependencies = new LinkedList<>(); + private final List> dependencies = new ArrayList<>(); private final AtomicBoolean allNameKnown = new AtomicBoolean(true); private final AtomicInteger finished = new AtomicInteger(0); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/mcbbs/McbbsModpackLocalInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/mcbbs/McbbsModpackLocalInstallTask.java index 4612ae674..c3ba91615 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/mcbbs/McbbsModpackLocalInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/mcbbs/McbbsModpackLocalInstallTask.java @@ -33,7 +33,7 @@ import org.jackhuang.hmcl.util.io.FileUtils; import java.io.File; import java.io.IOException; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -47,8 +47,8 @@ public class McbbsModpackLocalInstallTask extends Task { private final boolean update; private final DefaultGameRepository repository; private final MinecraftInstanceTask instanceTask; - private final List> dependencies = new LinkedList<>(); - private final List> dependents = new LinkedList<>(); + private final List> dependencies = new ArrayList<>(2); + private final List> dependents = new ArrayList<>(4); public McbbsModpackLocalInstallTask(DefaultDependencyManager dependencyManager, File zipFile, Modpack modpack, McbbsModpackManifest manifest, String name) { this.dependencyManager = dependencyManager; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/mcbbs/McbbsModpackRemoteInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/mcbbs/McbbsModpackRemoteInstallTask.java index 585c74665..3e970980e 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/mcbbs/McbbsModpackRemoteInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/mcbbs/McbbsModpackRemoteInstallTask.java @@ -29,8 +29,8 @@ import org.jackhuang.hmcl.util.io.FileUtils; import java.io.File; import java.io.IOException; +import java.util.ArrayList; import java.util.Collections; -import java.util.LinkedList; import java.util.List; public class McbbsModpackRemoteInstallTask extends Task { @@ -38,8 +38,8 @@ public class McbbsModpackRemoteInstallTask extends Task { private final String name; private final DefaultDependencyManager dependency; private final DefaultGameRepository repository; - private final List> dependencies = new LinkedList<>(); - private final List> dependents = new LinkedList<>(); + private final List> dependencies = new ArrayList<>(1); + private final List> dependents = new ArrayList<>(1); private final McbbsModpackManifest manifest; public McbbsModpackRemoteInstallTask(DefaultDependencyManager dependencyManager, McbbsModpackManifest manifest, String name) { diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/multimc/MultiMCModpackInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/multimc/MultiMCModpackInstallTask.java index 93a591a98..4470efafc 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/multimc/MultiMCModpackInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/multimc/MultiMCModpackInstallTask.java @@ -40,7 +40,6 @@ import java.nio.file.FileSystem; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; -import java.util.LinkedList; import java.util.List; import java.util.Optional; @@ -55,8 +54,8 @@ public final class MultiMCModpackInstallTask extends Task { private final MultiMCInstanceConfiguration manifest; private final String name; private final DefaultGameRepository repository; - private final List> dependencies = new LinkedList<>(); - private final List> dependents = new LinkedList<>(); + private final List> dependencies = new ArrayList<>(1); + private final List> dependents = new ArrayList<>(4); public MultiMCModpackInstallTask(DefaultDependencyManager dependencyManager, File zipFile, Modpack modpack, MultiMCInstanceConfiguration manifest, String name) { this.zipFile = zipFile; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/server/ServerModpackCompletionTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/server/ServerModpackCompletionTask.java index cdaf091d9..b06d0afa5 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/server/ServerModpackCompletionTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/server/ServerModpackCompletionTask.java @@ -53,7 +53,7 @@ public class ServerModpackCompletionTask extends Task { private ModpackConfiguration manifest; private GetTask dependent; private ServerModpackManifest remoteManifest; - private final List> dependencies = new LinkedList<>(); + private final List> dependencies = new ArrayList<>(); public ServerModpackCompletionTask(DefaultDependencyManager dependencyManager, String version) { this(dependencyManager, version, null); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/server/ServerModpackLocalInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/server/ServerModpackLocalInstallTask.java index 209c5e887..83f96789f 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/server/ServerModpackLocalInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/server/ServerModpackLocalInstallTask.java @@ -32,7 +32,7 @@ import org.jackhuang.hmcl.util.io.FileUtils; import java.io.File; import java.io.IOException; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.List; public class ServerModpackLocalInstallTask extends Task { @@ -42,8 +42,8 @@ public class ServerModpackLocalInstallTask extends Task { private final ServerModpackManifest manifest; private final String name; private final DefaultGameRepository repository; - private final List> dependencies = new LinkedList<>(); - private final List> dependents = new LinkedList<>(); + private final List> dependencies = new ArrayList<>(); + private final List> dependents = new ArrayList<>(4); public ServerModpackLocalInstallTask(DefaultDependencyManager dependencyManager, File zipFile, Modpack modpack, ServerModpackManifest manifest, String name) { this.zipFile = zipFile; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/server/ServerModpackRemoteInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/server/ServerModpackRemoteInstallTask.java index 0b7e652d5..eddafb81a 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/server/ServerModpackRemoteInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/server/ServerModpackRemoteInstallTask.java @@ -29,8 +29,8 @@ import org.jackhuang.hmcl.util.io.FileUtils; import java.io.File; import java.io.IOException; +import java.util.ArrayList; import java.util.Collections; -import java.util.LinkedList; import java.util.List; public class ServerModpackRemoteInstallTask extends Task { @@ -38,8 +38,8 @@ public class ServerModpackRemoteInstallTask extends Task { private final String name; private final DefaultDependencyManager dependency; private final DefaultGameRepository repository; - private final List> dependencies = new LinkedList<>(); - private final List> dependents = new LinkedList<>(); + private final List> dependencies = new ArrayList<>(1); + private final List> dependents = new ArrayList<>(1); private final ServerModpackManifest manifest; public ServerModpackRemoteInstallTask(DefaultDependencyManager dependencyManager, ServerModpackManifest manifest, String name) { diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/TaskExecutor.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/TaskExecutor.java index 6cfd32a7a..43dac3e36 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/TaskExecutor.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/TaskExecutor.java @@ -25,7 +25,7 @@ import java.util.concurrent.atomic.AtomicInteger; public abstract class TaskExecutor { protected final Task firstTask; - protected final List taskListeners = new LinkedList<>(); + protected final List taskListeners = new ArrayList<>(); protected final AtomicInteger totTask = new AtomicInteger(0); protected final AtomicBoolean cancelled = new AtomicBoolean(false); protected Exception exception; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/StringUtils.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/StringUtils.java index a6abd6543..b8fb74c8f 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/StringUtils.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/StringUtils.java @@ -199,13 +199,13 @@ public final class StringUtils { public static List tokenize(String str) { if (str == null) - return new LinkedList<>(); + return new ArrayList<>(); else return tokenize(str, " \t\n\r\f"); } public static List tokenize(String str, String delim) { - LinkedList result = new LinkedList<>(); + ArrayList result = new ArrayList<>(); StringTokenizer tokenizer = new StringTokenizer(str, delim); while (tokenizer.hasMoreTokens()) { delim = tokenizer.nextToken(); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/io/FileUtils.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/io/FileUtils.java index 5a201b002..bb0619d6c 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/io/FileUtils.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/io/FileUtils.java @@ -28,7 +28,7 @@ import java.lang.reflect.Method; import java.nio.charset.Charset; import java.nio.file.*; import java.nio.file.attribute.BasicFileAttributes; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -393,7 +393,7 @@ public final class FileUtils { } public static List listFilesByExtension(File file, String extension) { - List result = new LinkedList<>(); + List result = new ArrayList<>(); File[] files = file.listFiles(); if (files != null) for (File it : files) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/CommandBuilder.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/CommandBuilder.java index 1e0181921..bff944c91 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/CommandBuilder.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/CommandBuilder.java @@ -35,7 +35,7 @@ public final class CommandBuilder { private static final Pattern UNSTABLE_BOOLEAN_OPTION_PATTERN = Pattern.compile("-XX:(?[+\\-])(?[a-zA-Z0-9]+)"); private final OperatingSystem os; - private final List raw = new LinkedList<>(); + private final List raw = new ArrayList<>(); public CommandBuilder() { this(OperatingSystem.CURRENT_OS); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/ManagedProcess.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/ManagedProcess.java index f4841d2a0..be32c19f6 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/ManagedProcess.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/ManagedProcess.java @@ -34,7 +34,7 @@ public class ManagedProcess { private final String classpath; private final Map properties = new HashMap<>(); private final Queue lines = new ConcurrentLinkedQueue<>(); - private final List relatedThreads = new LinkedList<>(); + private final List relatedThreads = new ArrayList<>(); /** * Constructor.