java - 有没有办法将数组列表中的整数添加在一起?

标签 java

我正在尝试将数组列表中的整数添加在一起,以便让人们看到有多少人在排队等待 1v1。这是我的代码:` 包 me.sub.cPractice.Queue;

Main plugin;

public JoinQueue(Main plugin) {
    this.plugin = plugin;
}


@Override
public boolean onCommand(CommandSender sender, Command cmd, String s, String[] args) {
    if (cmd.getName().equalsIgnoreCase("queuetest")) {
        Player p = (Player) sender;
        new BukkitRunnable() {
            @Override
            public void run() {
                if (plugin.inqueue.contains(p)) {   
                    String replaced = PlaceholderAPI.setPlaceholders(p, "%server_online%");
                    ScoreHelper helper = ScoreHelper.createScore(p);
                    helper.setTitle("&6&lGoldHQ &r&7┃ &rPractice");
                    helper.setSlot(8, "&7&m---------------------");
                    helper.setSlot(7, "&eOnline: &f" + replaced);
                    helper.setSlot(6, "&eIn Fights: &f" + plugin.infightnumber.toString().replace("[", "").replace("]", ""));
                    helper.setSlot(5, "&7&m---------------------");
                    helper.setSlot(4, "&eQueued For: &fNoDebuff");
                    helper.setSlot(3, "" + plugin.inqueuenumber.toString().replace("[", "").replace("]", ""));
                    helper.setSlot(2, "&7&ogoldhq.net");
                    helper.setSlot(1, "&7&m---------------------");
                }
            }
        }.runTaskTimer(plugin, 20L, 20L);
    }
    return false;
}

` 我已经被困在这个问题上几个小时了,但我还没有找到任何有用的东西。当我希望它显示为 2 时,它显示为 1, 1。有帮助吗?

最佳答案

首先,您的问题根本不包含 ArrayList 。我猜你的问题出在:

helper.setSlot(3, "" + plugin.inqueuenumber.toString().replace("[", "").replace("]", ""));

您可以使用以下代码将该数字合并在一起:

helper.setSlot(3, "" + Arrays.stream(plugin.inqueuenumber.toString()
        .replace("[", "")
        .replace("]", "")
        .split(",")
    ).map(Integer::parseInt)
    .reduce(0, (subtotal, current) -> subtotal + current)
)

编辑:我注意到 plugin.inqueuenumber 是您一直在谈论的 ArrayList,因此以下内容也应该有效,而以前的解决方案是多余的:

helper.setSlot(3, "" + plugin.inqueuenumber.stream().reduce(0, (l, r) -> l + r))

关于java - 有没有办法将数组列表中的整数添加在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63144470/

相关文章:

java - ActionBarSherlock - 共享内容图标问题

java - 使用for循环查找字符数组中的数字之和

java - 用于配置测试的自定义注释

java - Int 不能取消引用。我该如何解决?

java - 发布将 json 转换为列表时的构建问题

Java:计算星期几适用于除本月之外的所有日期

java - 在mongodb中使用AND查询嵌入对象

java - jexcel中公式解析的EmptyStackException

java - 对 Java 集合进行排序时忽略单词 "the"

java - 填写Jasper报告时找不到外部模板