Ⅰ java中HashSet怎样遍历取出里面的值给个例子~~
HashSet<String> set=new HashSet<String>();
set.add("1");
set.add("2");
set.add("3");
Iterator<String> iterator=set.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
控制台输出:
3
2
1
对于集合这块的类都可以这样写的,比如你把第一行换成:
ArrayList<String> set=new ArrayList<String>();
后面的程序不动,一样可以遍历输出的。
不太懂的话可以网络Iterator的用法和原理
Ⅱ Java HashSet的用法
HashSet
set
=
new
HashSet();
set.add("a");
set.add("b");
set.add("c");
set.add("d");
Iterator
it
=
set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
=======================================================
上面就是遍历冲hashset中取出每个元素的方法,由于hashset本来就是无序的,所以你如果想通过下标取出元素的话,最好还是用list,你以什么顺序把元素放进去,就可以什么顺序把元素取出来
Ⅲ JAVA编程题 HashSet存储任意三个字符串,并遍历(增强for遍历)
HashSet<String> hash = new HashSet<String>();
//添加元素
hash.add("abc");
hash.add("java");
hash.add("haah");
//通过增强for循环遍历HashSet
for(String s: hash) {
System.out.println(s);
}
//通过迭代器遍历HashSet
Iterator<String> it = hash.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
Ⅳ java iterator循环遍历集合(比如HashSet)的原理
如果你用的是eclipse,按住ctrl键,鼠标左键点next()方法就能看到了,然后关联JDK源码就可以了
Ⅳ Java遍历HashSet为什么输出是有序的
实现是会变的,HashSet的迭代器在输出时“不保证有序”,但也不是“保证无序”。也就是说,输出时有序也是允许的,但是你的程序不应该依赖这一点。
Ⅵ Java中,HashSet遍历输出不会有重复的元素;但是,元素本身是对象的话却是会出现重复,为什么怎么改
重写对象(Employee)的两个方法:hashCode和equals,因为hashset比较对象是否不同的依据就是这两个方法,如果你是在eclipse环境里开发,不用手写的,右键Source就有Generate的实现
Ⅶ Java中Set集合怎样用for遍历
增强型的for循环 和普通for循环一样
增强型的for循环 优点主要体现在集合中,随便举个例子
比如对 set 的遍历
一般是迭代遍历:
Set<String> set = new HashSet<String>();
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String str = it.next();
System.out.println(str);
}
for循环遍历:
for (String str : set) {
System.out.println(str);
}
是不是简单些?
优点还体现在泛型 假如 set中存放的是Object
Set<Object> set = new HashSet<Object>();
for循环遍历:
for (Object obj: set) {
if(obj instanceof Integer){
int aa= (Integer)obj;
}else if(obj instanceof String){
String aa = (String)obj
}
........
}
唯一的缺点就是 在遍历 集合过程中,不能对集合本身进行操作
for (String str : set) {
set.remove(str);//错误!
}
Ⅷ java 我用hashset add两个不同的对象··但是hashset遍历出来的对象和hashcode是重复的好奇怪啊
hashset不保证集合的迭代顺序;特别是它不保证该顺序恒久不变。这是官方API中说的,所以你遍历的时候就有可能得到两个相同的对象了;或者说是你的遍历方法有问题,下面给你一个参考 HashSet hs = new HashSet(); hs.add("1"); hs.add("2"); Iterator it = hs.iterator(); while (it.hasNext()) { System.out.println(it.next()); }
Ⅸ java HashSet作为形参,在函数中用迭代器遍历为什么会报空指针应如何解决
应为你传递过来的是null啊,你把null赋值给itemset,再遍历itemset它就抛空指针了。
假如你把a传递给itemset,你在传递前打印一下a看是不是空
Ⅹ 用Java实现:HashSet集合储存自定义对象并遍历。
Set<Person> set=new HashSet<Person>();
for(int i=0;i<10;i++){
Person person=new Person();
person.setAge(i);
person.setId(i);
person.setName("name"+i);
set.add(person);
}
for(Person personsyso:set){
System.out.println(personsyso);
}
我自己定义的person类,使用增强for循环;