这就是我的文本文件的外观
Cincinnati
Oxford
Chicago
New York
Las Vegas
Houston
Detroit
Miami
Denver
Boston
我想从文本文件中随机填充ArrayListCity,然后使用collections.sort对其进行排序。文本文件中的所有城市都应该在数组列表中,但每次运行程序时都会以不同的顺序排列。
答案 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)
}