当前位置: 首页 > 知识库问答 >
问题:

在Java中,我如何使列表中的数组被洗牌以相互匹配?

百里业
2023-03-14

我是一个新的编码,我想知道我如何编码这个程序,使数组是匹配的。(苹果和1号匹配,香蕉和2号匹配,芒果和3号匹配)我使用了assert fruits.size()==numbers.size();,但它仍然不起作用,有没有办法可以修复它?

package example;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import javax.swing.JOptionPane;

public class Example {
    
    public static void main(String[] args) {
final StringBuilder generator = new StringBuilder();
final List<String> fruits = Arrays.asList("apples", "bananas", "mangos");
final List<Integer> numbers = Arrays.asList(1, 2, 3);

Collections.shuffle(fruits);
Collections.shuffle(numbers);

assert fruits.size() == numbers.size();

for (int i = 0; i < fruits.size(); i++) {
int a = i+1;
    final String name = JOptionPane.showInputDialog(null, "Enter person " + a + "'s name");

    generator.append(name)
        .append(" likes ")
        .append(fruits.get(i))
        .append(" and the number ")
        .append(numbers.get(i))
        .append("\n");
}

JOptionPane.showMessageDialog(null, generator);
    }
}

我希望输出为:

Alex喜欢芒果和3号

约翰喜欢苹果和数字1

简喜欢苹果和2号

共有1个答案

南宫鸿晖
2023-03-14
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.AbstractMap;
import javax.swing.JOptionPane;

public class Example {

    public static void main(String[] args) {
        final StringBuilder generator = new StringBuilder();

        final List<AbstractMap.SimpleEntry<String, Integer>> fruits = Arrays.asList(
                new AbstractMap.SimpleEntry("apples", 1),
                new AbstractMap.SimpleEntry("bananas", 2),
                new AbstractMap.SimpleEntry("mangos", 3)
        );

        Collections.shuffle(fruits);

        for (int i = 0; i < fruits.size(); i++) {
            int a = i + 1;
            final String name = JOptionPane.showInputDialog(null, "Enter person " + a + "'s name");

            generator.append(name)
                    .append(" likes ")
                    .append(fruits.get(i).getKey())
                    .append(" and the number ")
                    .append(fruits.get(i).getValue())
                    .append("\n");
        }

        JOptionPane.showMessageDialog(null, generator);
    }
}

输出示例:

 类似资料:
  • 我们如何一起使用数组和数组列表(如果可能的话)? 我想将一些字符串存储到数组列表中,稍后将它们取出,解析成字符串数组,将这些数组存储在数组列表中,稍后能够从数组列表中检索数据... 查看这段代码,并随意将我拆分为做蹩脚的编码;我已经有一段时间没有使用Java了。 在前面,我已经将一些外部文件转储到< code>nonParsedData中。就是一串弦。没什么大不了的。我取出这些字符串,读取它们,放

  • 我试图通过结合两种算法来返回最佳路径来解决旅行商问题 第一种算法使用环境ArrayList生成最佳路径 第二种算法将优化第一种算法获得的路由,但在这样做时,我需要创建一个新的ArrayList,即环境ArrayList,它被洗牌以匹配最佳路径数组的顺序 请你帮我做这个,因为我在洗牌环境数组列表时遇到了麻烦 这是环境ArrayList,其中每个节点由name、x cords、y cords组成: 返

  • 问题内容: 我需要知道是否将数据存储在ArrayList中,并且需要获取存储在其中的值。 例如:如果我有这样的数组列表 我想获取每个String元素,该怎么办? 我尝试通过以下代码来做到这一点: 问题答案: 以下代码段提供了一个示例,展示了如何从指定索引处的元素中获取元素,以及如何使用高级的for-each循环遍历所有元素: 请注意以下几点: 使用泛型和类型代替原始类型。 变量名以小写字母开头 被

  • 我在Java中洗牌二维数组时遇到问题。有10张底牌。 这是阵列: 每张牌必须复制4次,才能完成一副40张牌的牌组,然后洗牌。如何使用Java来实现这一点?

  • 我有一个有趣的两难处境: 我有一门课,假设它叫做文件柜。 FileCabinet存储文件的链接列表,称为“filesInCabinet”。 在每个文件中,还有另一个文件链接列表,称为“relatedFiles”。 所以它看起来像这样,例如: 文件柜1 文件1 文件3 文件3 文件1 文件2 文件2 我遇到的问题是,嵌套列表(“relatedFiles”)包含文件的单独实例,因此实际上更像: 文件柜

  • 我是Java和Stack Overflow的新手,我有一个关于排列的问题。 方法:我使用中的对象生成。每个的大小从(可能最小为1)到,并包含具有唯一名称属性的自定义生成对象。 问题:现在我的问题是如何在我的外部(y轴)中获得从第一个到最后一个的所有可能对象组合的排列(我想我们可以说这是x轴)? 我试着举一个简单的例子: : 1.1|1.2|1.3 : 2.1 : 3.1|3.2 这里,这些位于外部