日期:2014-05-20  浏览次数:20730 次

hashset不重复输出问题
public   static   void   main(String[]args){
File   f=new   File( "c:\\新建   文本文档.txt ");
HashSet   ddd=new   HashSet();
String   temp=null;
try{
BufferedReader   buffer=new   BufferedReader(new   FileReader(f));
while((temp   =   buffer.readLine())!=   null){
temp   =   temp.trim().substring(0,11);
ddd.add(temp);
System.out.println( "\nHashSet: ");
System.out.println(ddd);
Iterator   iterator=ddd.iterator();//取出元素
while(iterator.hasNext()){
System.out.print(iterator.next()+ "\n ");
}
}


111133333333
222233333333
444433333333
222233333333


会打出

HashSet:
[11113333333]
11113333333

HashSet:
[22223333333,   11113333333]
22223333333
11113333333

HashSet:
[44443333333,   22223333333,   11113333333]
44443333333
22223333333
11113333333

HashSet:
[44443333333,   22223333333,   11113333333]
44443333333
22223333333
11113333333
我想让他只打出最后一排数据     怎么改??谢谢

------解决方案--------------------
不知道你想打出什么东西出来

public static void main(String[] args)
{
File f = new File( "c:\\a.txt ");
HashSet ddd = new HashSet();
String temp = null;
try
{
BufferedReader buffer = new BufferedReader(new FileReader(f));
while ((temp = buffer.readLine()) != null)
{
temp = temp.trim().substring(0, 11);
ddd.add(temp);
System.out.println( "\nHashSet: ");
//System.out.println(ddd);
Iterator iterator = ddd.iterator();//取出元素
while (iterator.hasNext())
{
System.out.print(iterator.next() + "\n ");
}
}
}
catch (Exception e)
{

}
}

从一开始就请把代码写规整点来。
------解决方案--------------------
while循环弄清楚,存完了再输出

BufferedReader buffer = new BufferedReader(new FileReader(f));
while ((temp = buffer.readLine()) != null) {
temp = temp.trim().substring(0, 11);
ddd.add(temp);
}

System.out.println( "\nHashSet: ");
System.out.println(ddd);
------解决方案--------------------
/*
我想这不算是一个HASHSET的问题,而是WHILE循环作用域的问题
*/

import java.io.*;
import java.util.*;

public class Csdn1321{
public static void main(String[] args) throws IOException{
File f = new File( "data ");
HashSet <String> ddd = new HashSet <String> (); //create a HashSet of Strings
String temp = null;

BufferedReader buffer = new BufferedReader(new FileReader(f));
while((temp = buffer.readLine())!=null){
temp = temp.trim().subString(0,11);
ddd.add(temp);
}

System.out.println( "\nHashSet: ");
System.out.println(ddd);
for(String s : ddd){
System.out.println(s);
}
}
}
------解决方案--------------------
你的代码本来就没问题啊,可以过滤掉重复的记录啊。
------解决方案--------------------