迭代器英文叫做Iterator。set有iterator方法,传给迭代器对象进行迭代。
示例如下:
package cn.util
import java.util.HashSet
import java.util.Iterator
import java.util.LinkedList
import java.util.List
import java.util.Set
public class SetDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Set set=new HashSet()
List list=new LinkedList()
list.add("1")
list.add("2")
set.add(list)
list=new LinkedList()
list.add("1")
list.add("2")
set.add(list)
set.add("a")
set.add("b")
set.add("a")
Iterator it= set.iterator()
while(it.hasNext())
{
Object ob=it.next()
if(ob instanceof List)
{
System.out.println(ob+" "+"true")
}
else{
System.out.println(ob+" "+"false")
}
}
System.out.println(set.size())
}
}
HashMap散列图、Hashtable散列表是按“有利于随机查找的散列(hash)的顺序”。并非按输入顺序。遍历时只能全部输出,而没有顺序。
甚至可以rehash()重新散列,来获得更利于随机存取的内部顺序。
总之,遍历HashMap或Hashtable时不要求顺序输出,即与顺序无关。
如果需要顺序,请使用List的子类,都是有序的。