如何读取文件并随机从中提取信息并将其添加到数组列表中?

时间:2014-06-18 10:29:35

标签: java sorting random arraylist filereader

这就是我的文本文件的外观

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

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

1 个答案:

答案 0 :(得分:1)

阅读file sequentially - 这是最简单的路线。

Then randomly shuffle the collection


实际上,另一个问题。你可以使用math.random()来查看文本文件的行吗?如果让我们说第5行出现,那么你可以从为math.random()设置的参数中删除它吗?它将从0-9中选择,在使用第五行后,它将从0-4,6-9

中选择

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

充其量,它过于复杂,非常简单。最好的事情,就像我说的,读取每一行并将其插入到arrayList中。然后就来了。

另一个观点是,读取每一行,获取arraylist的大小并在arraylist中随机插入新的String。下面是一些代码:

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

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