当前位置: 首页 > news >正文

集合练习

七、练习

按要求实现:

(1)封装一个新闻类,包含标题和内容属性,提供get、set方法,重写toString方法,打印对象时只打印标题;

(2)只提供一个带参数的构造器,实例化对象时,只初始化标题;并且实例化两个对象:

新闻一:新冠确诊病例超干万,数百万印度教信徒赴恒河“圣浴”引民众担忧

新闻二:男子突然想起2个月前钓的鱼还在网兜里,捞起一看赶紧放生

(3)将新闻对象添加到ArrayList集合中,并且进行倒序遍历:(4)

(4)在遍历集合过程中,对新闻标题进行处理,超过15字的只保留前15个,然后在后边加 “ … ”

(5)在控制台打印遍历出经过处理的新闻标题;

public class HomeWork{public static void main(String[] args){ArrayList arrayList = new ArrayList();arrayList.add(new News("新冠确诊病例超千万,数百万印度教信徒赴恒河\"圣浴\"引民众担忧"));arrayList.add(new News("男子突然想起2个月前钓的鱼还在网兜里,捞起一看赶紧放生"));int size = arrayList.size();for (int i= size -1; i>= 0; i--){News news = (News)arrayList.get(i);System.out.println(processTitle(news.getTitle()));}}//专门写一个方法处理显示新闻标题public static String processTitle(String title){if(title == null) {return "";}if(title.length() > 15){return title.substring(0, 15)+"..."; //[0,15)} elsereturn title;}
}class News{private String title;private String content;//get/set方法省略//toString方法只需要title
}

试分析 HashSet 和 TreeSet 分别如何实现去重的
(1) HashSet的去重机制:hashCode() + equals() ,底层先通过存入对象,进行运算得到一个hash值,通过hash值得到对应的索引,如果发现table索引所在的位置,没有数据,就直接存放;如果有数据,就进行equals比较[遍历比较],如果比较后,不相同,就加入,否则就不加入.

(2)TreeSet的去重机制:如果你传入了一个 Comparator 匿名对象,就使用实现的compare去重,如果方法返回0,就认为是相同的元素/数据,就不添加;如果你没有传入一个 Comparator 匿名对象,则以你添加的对象实现的 Compareable 接口的 compareTo 去重.

下面两句是否会抛出异常

TreeSet treeSet = new TreeSet();//分析源码
treeSet.add(new Person());//CLassCastException.
//add 方法,因为 TreeSet()构造器没有传入Comparator接口的匿名内部类
//所以在底层 Comparable<? super K> k=(Comparable<? super K>) key;
//即把 Perosn转成 Comparable类型,但无法转成功//如果防止报错,需要让Person实现接口
class Person implements Comparable{
}

已知:Person类按照id和name重写了hashCode利equals方法,问下面代码输出什么?

HashSet set = new HashSet();
Person p1= new Person(1001,"AA");
Person p2= new Person(1002,"BB");
set.add(p1);
set.add(p2);
p1.name ="CC";
set.remove(p1);//无法成功删除p1,因为更改后的1001,CC和原先100,AA,两者的编码不相同,位置不一样,找不到更新后的位置无法成功删除
System.out.println(set);//输出两个对象
set.add(new Person(1001,"CC"));
System.out.println(set);//三个对象,两个new Person不是同一对象
set.add(new Person(1001, "AA"));//挂到p1后面
System.out.println(set);//四个对象
集合 7.1
http://www.sczhlp.com/news/61669/

相关文章:

  • C# Avalonia 11- DragInCanvasTest
  • C#/.NET/.NET Core技术前沿周刊 | 第 52 期(2025年8.25-8.31)
  • 湖北省建设厅网站a群免费的域名解析
  • 做资讯网站做网站开发用哪种语言好
  • 百度做网站投广告最新新闻头条国家大事国际新闻
  • 石狮网站建设科技苏州找工作
  • 门户网站类型有哪些做盗版视频网站吗
  • iis 网站访问权限设置海尔商城网站建设维护
  • 溧阳网站建设报价简述网站开发过程
  • 简单网站建设方案外链都没有的网站如何做排名的
  • 医药网站怎么做wordpress 无法升级
  • 做外贸的网站有那些seo计费怎么刷关键词的
  • 制作网站流程图广东省医院建设协会网站
  • 网站工商网监标wordpress怎么禁用多域名
  • 株洲企业网站建设品牌北京互联网公司有哪些
  • 网页的依托网站网络推广哪个网站好
  • 凡科做数据查询网站erp软件定制公司
  • 环球资源网的定位淄博网络优化哪家专业
  • 做漫画网站的需求国外网站在国内做镜像站点
  • 网站建设方案 预算云技术在网站建设中的应用
  • 大美南京网站seo软文代写
  • 永嘉专业网站建设团队网页设计与制作考试
  • 互联网建站公司有哪些网站要备案吗
  • 网站建设维护和网页设计怎么访问域名网站
  • Java集合框架-15.TreeSet详解
  • 冻结列
  • 网站接入服务 公司网上购物平台类型
  • 咨询服务类网站建设室内设计就业前景如何
  • 汉力建设网站配置wordpress
  • 广州公司注册网站官网农村电子商务网站建设