【问题标题】:How can I read a file and randomly pull information from it and add it to an array list? [closed]如何读取文件并从中随机提取信息并将其添加到数组列表中? [关闭]
【发布时间】:2014-08-08 14:42:02
【问题描述】:

这就是我的文本文件的样子

Cincinnati 
Oxford  
Chicago 
New York
Las Vegas 
Houston  
Detroit  
Miami  
Denver 
Boston

我想从文本文件中随机填充一个 ArrayListCity,然后使用 collections.sort 对其进行排序。文本文件中的所有城市都应在数组列表中,但每次运行程序时顺序不同。

【问题讨论】:

  • 应该尝试家庭作业....
  • 作业只要求我们使用collections.sort,我试图提前一步,学习一些他们在课堂上教的东西。所以,谢谢你的帮助。
  • 不要尝试从文件中随机读取行。将文件中的行读入数组,然后然后随机打乱这些行。

标签: java sorting random arraylist filereader


【解决方案1】:

阅读file sequentially - 这是最简单的方法。

Then randomly shuffle the collection.


其实,另一个问题。您能否使用 math.random() 查看文本文件的行,如果出现第 5 行,然后将其从为 math.random() 设置的参数中删除?它将从 0-9 中选择,在使用第五行后,它将从 0-4,6-9 中选择

这是可能的——但过于复杂了。实现此类功能的最佳方法是拥有一个数字“池”。 (即 Integer 对象的数组列表),那么您可以使用随机数生成器(介于 0 和 arrayList.size() 之间)来获取(并将其从您的 arrayList 中删除)其中一个 Integer 对象。然后读那行。这种方法需要几个对象(Random、Arraylist、Integer、Reader)。

充其量,对于如此简单的事情来说,它过于复杂了。就像我说的那样,最好的办法是读取每一行并将其插入到 arrayList 中。然后混战。

对此的另一种看法是,读取每一行,获取数组列表的大小并在数组列表中随机插入新字符串。下面是一些代码:

arrayList.add(getRandomIndex(arrayList.size()),string);

public int getRandomIndex(int size){
    return ((int)Math.random()*size)
}

【讨论】:

  • 我只需要一点指导。谢谢大佬!
  • 其实还有一个问题。您能否使用 math.random() 查看文本文件的行,如果出现第 5 行,然后将其从为 math.random() 设置的参数中删除?它将从 0-9 中选择,在使用第五行后,它将从 0-4,6-9 中选择。
  • 我想将城市添加到数组列表中,然后洗牌失败,以便稍后对它们进行排序。我想我会试试你给我的第二个例子。感谢您的建议,感谢您花时间来回提出想法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-02
相关资源
最近更新 更多