当前位置: 首页 > 面试题库 >

如何在main中所有已声明的对象中仅在此数组中选择一个随机元素?

梁晋鹏
2023-03-14
问题内容

我希望这些对象在main中声明的所有对象中仅在数组中打印一次随机名称。我的问题是,它将显示两次或更多次的名称。

public class Fighters {

    private static String[] names = { "Terminator", "Slicer","Ninja", "cow", "Robot", "littlegirl" };
    private static int id = 0;

    public Fighters(){
        id++;
        name = names[(int) (Math.random() * names.length)];
    }

    public String toString(){
        return String.format(id+" Name:%-5s, name);
    }
}

main()我有这些对象

Fighters a1 = new Fighters();
System.out.println(a1.toString());

Fighters a2 = new Fighters();
System.out.println(a2.toString());

Fighters a3 = new Fighters();
System.out.println(a3.toString());

问题答案:

如果要将名称分配保留在Fighter类中,请使用静态变量来保存使用过的名称列表。您需要确保您创建的战斗机没有超过名称数组。否则,它将无限期地循环。我将由您自己决定这一部分。这至少应该使您走上正确的道路。

import java.util.ArrayList;

public class Fighter {

    private String name;

    private static String[] names = { "Terminator", "Slicer","Ninja", 
             "cow", "Robot", "littlegirl" };
    private static int id = 0;
    private static ArrayList<String> usedNames = new ArrayList<String>();


    public void Fighters(){
        id++;
        String checkedName = "";
        do{
            checkedName = names[(int) (Math.random() * names.length)];
            if(!usedNames.contains(checkedName)) break;
        }
        while(true);
        name = checkedName;
        usedNames.add(name);
    }

    public String toString(){
        return String.format(id+" Name:%-5s, name");
    }

}


 类似资料:
  • 问题内容: 假设我有一个数组,我想随机选择一个元素。 最简单的方法是什么? 明显的方法是。但是也许有红宝石之类的东西?或者如果不能通过扩展创建这种方法? 问题答案: Swift 4.2及更高版本 推荐的新方法是Collection协议的内置方法:。它返回一个可选参数以避免我以前假设的空情况。 如果不创建数组并且不能保证count> 0,则应执行以下操作: Swift 4.1及以下 只是为了回答您的

  • 假设我有一个数组,我想随机选择一个元素。 最简单的方法是什么? 最明显的方法是数组[随机索引]。但可能有类似ruby的数组。示例 ?或者,如果不是,那么可以使用扩展创建这样的方法吗?

  • 问题内容: 我正在寻找从整数数组中随机选择数字的解决方案。 例如我有一个数组,如何随机选择一个数字? 问题答案:

  • 例如:数组中有四个项目。我想随机获取一个,如下所示:

  • 我被分配了一项编程任务,但我被卡住了。其说明如下: 有一个名为“秘密圣诞老人”(给他们礼物)的游戏,有很多孩子参加。对于每个参与的孩子,都有一个来自参与孩子的秘密圣诞朋友。我必须编写一个程序,为每个参与的孩子挑选一个秘密的圣诞老人朋友。 示例:如果Bob,Alice,John和George是参与的孩子,在随机选择之后, 输出可能看起来像 具有相同输入的连续两次程序运行不应有相同的结果。 我的想法是

  • 问题内容: 我有一个数字值数组,我想从该数组中随机选择一个值,然后将其插入变量中。 我不确定您需要查看什么代码。所以, 这是我用来生成13个数字(1-13)并将其插入到数组中的循环。 效果很好,但是现在我需要从该数组中选择2个随机值(然后将其插入变量中,以备后用。 我到过很多网站,已经看到了类似的事情,例如将值插入到数组中,然后用于从数组中选择值,然后从数组中删除它。但是,无论何时我使用它都行不通