を使用してテキストファイル内の重複する番号を特定するここでは、テキストファイルに繰り返し番号を示すコードを書いています。ここでは、テキストファイルには各行に整数だけが含まれていると仮定しました。あなたが今見ているように、それはテキストファイルに繰り返し整数を示しています。ハッシュセット
テキストファイルのパス名をハードコードしました。
ここでは、2つのハッシュセットを使用して実装しました。ハッシュセットを1つだけ使用してもかまいませんか? 1つのハッシュセットだけを使用して同じものを実装する方法を教えてください。
import java.io.*;
import java.util.*;
パブリッククラスFileRead関数{
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
HashSet <String> uniquelines=new HashSet<String>();
HashSet<String>duplicatelines=new HashSet<String>();
try{
FileInputStream fstream=new FileInputStream("C:/Users/LENOVO/Desktop/txt.txt");
DataInputStream in=new DataInputStream(fstream);
BufferedReader br=new BufferedReader(new InputStreamReader(in));
ArrayList arr=new ArrayList();
String str;
while((str=br.readLine())!=null){
if(uniquelines.contains(str)){
if(!duplicatelines.contains(str)){
duplicatelines.add(str);
System.out.println(str);
}
}
else{
uniquelines.add(str);
}
}
in.close();
}catch(Exception e){
System.out.println(e);
}
}
}
インポートにワイルドカード(。*)を使用しないでください。使用するクラスだけをインポートする –
重複する行を特定するために単一のハッシュセットを使用できるとは思われません。 @ JB Nizetが指摘するように、ハッシュテーブルを使用する必要があります。 HashSet "はセットの反復順序に関して保証しません。"ソート可能なコレクションを使用した場合は、コレクションをソートしてからposition +(position + 1)を比較して重複を判別できます。これは、HashMapを使用するほど優雅ではありません。 – XanderLynn