请问用Hashset里的remove方法时,删掉的对象为何不是最新add到hashset里的对象?我要做的小程序是把一些string对象放到hashset里去,在add一个对象之后,如果发现hashset的size不变时(说明原来的hashset里已经有相同的对象)则把该对象删除,请问该怎么做?谢谢!我自己写的代码如下:
BufferedReader br = new BufferedReader(new FileReader("c:/lib.txt"));
BufferedReader si = new BufferedReader(new InputStreamReader(System.in));
String str;
String bsp = si.readLine();
String[] example = bsp.split(" ");
TreeSet ts = new TreeSet();
int size=0;
int laterSize=0;
while ((str = br.readLine()) != null)
{
String[] stringArray = str.split(",");
if (example[2].equals(stringArray[2]))
{
size=ts.size();
ts.add(stringArray[1]);
laterSize=ts.size();
if(size==laterSize){
ts.remove(stringArray[1]/*br.readLine()*/);
}else continue;
}else continue;
}
Iterator Iter = ts.iterator();
while (Iter.hasNext()) {
System.out.println(Iter.next());
}
System.out.println("---------------------------------------");
BufferedReader br = new BufferedReader(new FileReader("c:/lib.txt"));
BufferedReader si = new BufferedReader(new InputStreamReader(System.in));
String str;
String bsp = si.readLine();
String[] example = bsp.split(" ");
TreeSet ts = new TreeSet();
int size=0;
int laterSize=0;
while ((str = br.readLine()) != null)
{
String[] stringArray = str.split(",");
if (example[2].equals(stringArray[2]))
{
size=ts.size();
ts.add(stringArray[1]);
laterSize=ts.size();
if(size==laterSize){
ts.remove(stringArray[1]/*br.readLine()*/);
}else continue;
}else continue;
}
Iterator Iter = ts.iterator();
while (Iter.hasNext()) {
System.out.println(Iter.next());
}
System.out.println("---------------------------------------");
String st = new String("aaa");
if(!ts.contains()) {
ts.add(st);
}就好了
所以当你添加一个对象时,hashset会自己判断里面是否有重复的,所以才出现你删除原来已经有的对象
ts.add(st);
} else {
ts.remove(st);
}