Set接口存储一组唯一,无序的对象
HashSet是Set接口常用的实现类
Set中存放对象的引用
Set接口如何判断加入对象是否已经存在呢
采用对象的equals()方法比较两个对象是否相等
public class SetDemo2 {
public static void main(String[] args) {
Set set=new HashSet();
String s1=new String("java");
String s2=s1;
String s3=new String("java");
set.add(s1);
set.add(s2);
set.add(s3);
System.out.println(set.size());//因为是重复的对象,所以输出的size为1
}
}
通过代码实现HashSet实现:HashSet存储数据
增强型for对集合的遍历
方法一:使用增强型的for,不能用普通的for
方法二:通过迭代器Iterator实现遍历(ArrayList和LinkedList也可以用)
获取Iterator:Collection接口的iterator()方法
Iterator的方法:boolean hashNext():判断是否存在另一个可访问的元素
Object next():返回要访问的下一个元素
/对新闻标题的存储及操作(HashSet)
public class NewsMgr {
public static void main(String[] args) {
//创建新闻标题对象
NewsTitle title1 = new NewsTitle(1, "北京热门景点故宫1", "author");
NewsTitle title2 = new NewsTitle(2, "北京热门景点长城2", "author");
NewsTitle title3 = new NewsTitle(3, "北京热门景点北海3", "author");
NewsTitle title4 = new NewsTitle(4, "北京热门景点颐和园4", "author");
NewsTitle title5 = new NewsTitle(5, "北京热门景点天安门5", "author");
//创建集合对象,并且将新闻标题加入到集合中
Set set=new HashSet();
//set--Collection
set.add(title1);
set.add(title2);
set.add(title3);
set.add(title4);
set.add(title5);
//获取新闻标题的总数
System.out.println("新闻标题一共有" + set.size() + "条");
//逐条打印新闻标题的名称,打印结果并非按照代码中的添加顺序来的,因为无序
System.out.println("****************************");
//方法一:增强型for
for (Object obj:set){
NewsTitle title=(NewsTitle)obj;
System.out.println(title.getTitle()+"-"+title.getAuthor());
}
System.out.println("****************************");
//方法二:通过迭代器Iterator
//1.先获取迭代器对象
Iterator itor=set.iterator();
//2.判断是否存在下一个元素
while (itor.hasNext()){
//3.返回要访问的下一个元素
NewsTitle title=(NewsTitle)itor.next();
System.out.println(title.getTitle()+"-"+title.getAuthor());
}
}
}

本文介绍了Java集合框架中的Set接口及其常用的实现类HashSet。通过实例展示了HashSet如何存储唯一对象并利用equals()方法判断对象是否存在。同时,演示了使用增强型for循环和Iterator遍历HashSet的方法。在示例中,存储了多个新闻标题对象,输出了新闻标题的总数以及遍历显示所有标题。
1377

被折叠的 条评论
为什么被折叠?



