【发布时间】:2014-06-20 00:16:42
【问题描述】:
对于一项作业,我的任务是读取预先填充的文件作为 ArrayList、对其进行排序并删除所有重复项。我的任务是使用 binarySearch API 执行此操作。他说得比较具体。我以前从未这样做过,我不确定我需要做什么才能让 Collections.binarySearch 工作。导师给了我一个开始,但我知道我做的 Collections.binarySearch 的参数不正确,但我终生无法找出正确的方法来做到这一点。如果有人能提供帮助,将不胜感激。
这是我目前所拥有的。如果这很重要,我可以从 set1.txt 发布整数
public static void main(String[] args) {
collections program = new Collections();
program.readFile();
}//main
public void readFile() {
File f = new File("set1.txt");
try {
Scanner in = new Scanner(f);
while (in.hasNext()) {
int x = in.nextInt();
int index = Collections.binarySearch(x,0);
if (index == 1)
list.add(x);
}//while
Collections.sort(list);
in.close();
}//try
catch (IOException e) {
e.printStackTrace();
}//catch
}//readFile
【问题讨论】:
-
你读过javadoc for
Collections.binarySearch()吗?您需要满足一些我认为您没有满足的先决条件,以及有关要使用的正确参数的信息。 -
您是否考虑过只使用某种
Set? -
@MadProgrammer 似乎问题描述需要这种特殊用途,但我同意
Set将是最佳解决方案。 -
我对 Set 不熟悉。 binarySearch 不一定是一个完整的要求,只是反复建议的东西。如果有什么更有效的,我相信它会很好。我只是卡住了,从未使用过 collections.binarySearch 或 Sets。
-
问题供你思考。在正确排序的数组中,重复值相对于彼此在哪里?鉴于此,您是否需要 binarySearch 来删除重复项?
标签: java collections arraylist duplicates