集合中存储的是对象的引用,对象存在堆(heap)里
方式2
for(Iterator it=al.Iterator;it.hasNext())
{ 处理元素 }
元素 索引,可以重复
Set
元素无索引,不可以重复(不可以放同样的元素,放不进去)
HashSet(无序),TreeSet(有排序)
数据存储方式
HashSet:哈希表,TreeSet:二叉树
运行结果:
迭代器(遍历器)
迭代器用于遍历集合中的元素
方式1
Iterator it=al.iterator();
while(it.hasNext())
{ 处理元素 }方式2
for(Iterator it=al.Iterator;it.hasNext())
{ 处理元素 }
调用it.next()获取下一个元素,同时将指针往后指。
List共性元素 索引,可以重复
Set
元素无索引,不可以重复(不可以放同样的元素,放不进去)
HashSet(无序),TreeSet(有排序)
数据存储方式
HashSet:哈希表,TreeSet:二叉树
代码:
package javastudy;
import java.util.HashSet;
import java.util.Iterator;
public class test {
public static void main(String[] args) {
HashSet<String>hs=new HashSet<String>();
hs.add("Beijing");
hs.add("Shanghai");
hs.add("Tianjin");
hs.add("Chongqing");
for(Iterator<String>it=hs.iterator();it.hasNext();)
{
System.out.println(it.next());
}
// 或者使用while
// Iterator<String>it=hs.iterator();
// while(it.hasNext())
// {
// System.out.println(it.next());
// }
}
}
运行结果:
Beijing
Shanghai
Chongqing
Tianjin
HashSet元素无索引且无序,若要排序可替换为TreeSet,则结果为:
Beijing
Chongqing
Shanghai
Tianjin
需注意TreeSet对汉字字符并不按照拼音进行排序,另有排序规则