我需要完成程序的一部分,找出读取文本文件中是否有任何重复项。给定的基本代码如下,
public class Lab6
{
public static void main( String args[] ) throws Exception
{
ArrayList<String> list = new ArrayList<String>();
BufferedReader infile = new BufferedReader( new FileReader( args[0] ) );
long startTime = System.currentTimeMillis();
while (infile.ready())
list.add( infile.readLine() );
infile.close();
System.out.printf( "List contains %d Strings.\n",list.size());
boolean hasDupe = false;
String dupe="";
/* YOUR CODE IN HERE
SET hasDupe to T/F
Do it EFFICIENTLY! i.e. < N squared
*/
if (hasDupe)
System.out.println("List contains dupe: " + dupe );
else
System.out.println("List contains NO dupes.");
long endTime = System.currentTimeMillis();
long ms = endTime-startTime;
System.out.printf("Elapsed time: %f seconds\n", ms/1000.0);
}
}
我需要在不使用蛮力方法的情况下完成它。
答案 0 :(得分:2)
您可以创建一个HashSet对象并开始向其添加所有字符串。如果有重复,HashSet将在add()方法上返回false,这是重复的提示。你可以在O(n)时间内完成它。