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

网站备案 途径教育培训学校

网站备案 途径,教育培训学校,襄阳 网站建设,wordpress的模板是什么set集合 Set系列集合: 无序:存取顺序不一致 不重复:可以去除重复 无索引:没有带索引的方法,所以不能使用普通for循环遍历,也不能通过索引来获取元素 可以看出set是无序的存和打印的顺序不一样 Set接中的…

set集合

Set系列集合:

无序:存取顺序不一致

不重复:可以去除重复

无索引:没有带索引的方法,所以不能使用普通for循环遍历,也不能通过索引来获取元素

可以看出set是无序的存和打印的顺序不一样

Set接中的方法上基本上与Collection的APl一致:

小练习:

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.function.Consumer;public class text9 {public static void main(String[] args) {Set<String> s= new HashSet<String>();s.add("张三");s.add("李四");s.add("张三");s.add("王五");//迭代器遍历Iterator<String> it=s.iterator();while(it.hasNext()){System.out.println(it.next());}//增强for循环遍历for(String str:s ){System.out.println(str);}//Lambda表达式遍历s.forEach(str-> System.out.println(str));}
}

小结:

1. Set系列集合的特点

  • 无序、不重复、无索引
  • Set集合的方法上基本上与Collection的APl一致

2.Set集合的实现类特点

  • HashSet 无序、不重复、无索引
  • LinkedHashSet:有序、不重复、无索引
  • TreeSet:可排序、不重复、无索引

set集合中实现类HashSet

HashSet底层原理

  • HashSet集合底层采取哈希表存储数据
  • 哈希表是一种对于增删改查数据性能都较好的结构

哈希表组成

  • JDK8之前: 数组+链表
  • JDK8开始: 数组+链表+红黑树

哈希值

  • 根据hashCode方法算出来的int类型的整数
  • 该方法定义在Object类中,所有对象都可以调用,默认使用地址值进行计算
  • 一般情况下,会重写hashCode方法,利用对象内部的属性值计算哈希值

对象的哈希值特点

  • 如果没有重写hashCode方法,不同对象计算出的哈希值是不同的
  • 如果已经重写hashcode方法,不同的对象只要属性值相同,计算出的哈希值就是一样的
  • 在小部分情况下,不同的属性值或者不同的地址值计算出来的哈希值也有可能一样。 (哈希碰撞)

没有重写hashCode打印的结果

重写hashCode打印的结果

在对象中重写hashCode方法alt+inset idea会自动生成

哈希碰撞

HashSet 底层原理

哈希表组成

  • JDK8之前: 数组+链表
  • JDK8开始: 数组+链表+红黑树

加载因子:是用来数组的扩容的

JDK8以后,当链表长度超过8,而且数组长度大于等于64时 自动转换为红黑树

如果集合中存储的是自定义对象,必须要重写hashCode和equals方法

string Integer 在HashSet中不需要重写方法因为这俩类已经重写好了。

LinkedHashSet底层原理

  • 有序、不重复、无索引。
  • 这里的有序指的是保证存储和取出的元素顺序一致
  • 原理:底层数据结构是依然[ 哈希表 只是每个元素又额外的多了一个 双链表的机制记录存储的顺序。

在以后如果要数据去重,我们使用哪个?

默认使用HashSet

如果要求去重且存取有序,才使用L LinkedHashSet :因为效率比较低

TreeSet

默认排序/自然排序:Javabean类实现Comparable接口指定比较规则

TreeSet的特点

  • 不需要重写hashcode和equals方法因为TreeSet的底层是红黑树,但是要指定排序规则
  • 不重复、无索引、可排序
  • 可排序:按照元素的默认规则(有小到大)排序。
  • TreeSet集合底层是基于红黑树的数据结构实现排序的,增删改查性能都较好。

可排序代码案例:

打印结果:

三种遍历:

打印结果:

重写排序规则的理解:

TreeSet第二种排序

比较字符串默认是按首字母大小来排序的,如果我们想先按长度进行排序如果长度一样再按首字母排序。就会用到第二中排序方式。

比较器排序:创建TreeSet对象时候,传递比较器Comparator指定规则

使用原则:默认使用第一种,如果第一种不能满足当前需求,就使用第二种

查看API文档找treeset 利用接口new comparator<String>重写compare方法

代码案例

练习

小结:

http://www.dinnco.com/news/58471.html

相关文章:

  • 苏州网址云seo
  • 3g医院网站模板在百度做广告多少钱
  • 网站怎么做下载功能如何推销自己的产品
  • 想要将网站信息插到文本链接怎么做软文街官方网站
  • 中国建造师官方网站查询百度门店推广
  • 网站刚做好怎么做优化重庆seo整站优化外包服务
  • 男女做那个是的视频网站seo云优化是什么意思
  • 国务院 政府网站建设的意见谈谈你对seo概念的理解
  • 商城网站怎么做推广方案seo助力网站转化率提升
  • 宣城市建设银行网站seo站长工具查询
  • wordpress更改域名 后台八宿县网站seo优化排名
  • 网站后端怎么做企业网络营销策略分析
  • 上传文件网站根目录热门关键词查询
  • cms开发是什么意思拼多多关键词怎么优化
  • 上海网站制作公司河南省郑州市金水区
  • 校园微网站建设方案ppt模板谷歌浏览器网页版
  • 网页设计草图大学生品牌seo培训
  • WordPress文章资讯主题做网络优化哪家公司比较好
  • phpcms可以做网站吗百度如何快速收录网站
  • 建立自己的网站各大网站推广平台
  • 企业为什么要建立战略联盟青岛百度推广优化怎么做的
  • 做网站属于技术开发吗seo蜘蛛屯
  • 两个人看的视频在线观看搜索引擎优化seo方案
  • 做网站排行网站制作公司网站
  • wordpress 一小时建站太原seo霸屏
  • 网站建设 南通制作一个网站的流程有哪些
  • 看到一个电商网站帮做淘宝武汉seo优化公司
  • 用ps做网站主页如何做好推广引流
  • 动态网站开发 机械中国十大策划公司排名
  • 西安网站建设管理深圳网络推广方法