【问题标题】:How to generate random string from a collection of strings in Java?如何从Java中的字符串集合生成随机字符串?
【发布时间】:2013-08-25 15:14:40
【问题描述】:

假设我有 10 个名字的集合。单击按钮时,程序应从该集合中生成一个随机名称。它是如何实现的?

【问题讨论】:

  • 你有什么样的收藏? List, Set?

标签: java string button


【解决方案1】:

假设你有一个字符串的集合(列表):

List<String> list;

然后得到一个随机的:

Collections.shuffle(list);
String random = list.get(0);

实际上你可以使用随机列表中的任何元素,但第一个 (.get(0)) 似乎是最简单的。

【讨论】:

    【解决方案2】:

    你可以试试

    list.get((int) (Math.random() * list.size()))
    

    如果你没有List,而是另一种不支持索引的集合,你仍然可以使用类似的东西:

    new ArrayList<>(col).get((int) (Math.random() * col.size()))
    

    【讨论】:

      【解决方案3】:

      假设我有 10 个名字的集合。

      String[] names = new String[10];
      // Make sure you init the array
      

      点击按钮时,程序应该生成一个随机名称 来自那个集合。

      我假设通过从该集合中生成一个随机名称,您的意思是从该集合中选择一个随机名称。

      private String onButtonClicked() {
      return names[getRandomNumber(0, names.length - 1);];
      
      }
      
      private static int getRandomNumber(int begin, int end) {
        Random generator = new Random();
        return generator.nextInt(end - begin + 1) + begin;
      }
      

      希望对你有帮助。

      【讨论】:

      • 数组不是集合。
      • @Bohemian 他没有说明是什么样的集合,由于他提供了有限数量的对象,他想存储在那个集合中,我假设它是一个数组。
      • 在java中Collection有这个特定的含义。
      猜你喜欢
      • 2014-02-09
      • 1970-01-01
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-01
      相关资源
      最近更新 更多