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

java集合类

第十五天知识点总结

一、LinkedList集合类

LinkedList中特有的方法:

1.方法介绍:

添加:

addFirst(E e); 添加在集合第一位的元素

addLast(E e); 添加在集合最后一位的元素

获取:

getFirst(); 获取集合中的第一个元素

getLast(); 获取集合中的最后一个元素

删除:

removeFirst(); 删除集合中的第一个元素

removeLast(); 删除集合中的最后一个元素

2.数据结构

1:栈(1.6)先进后出(栈的结构)

Push();

Pop();

2:队列(双端队列1.5) 先进先出

Offer();

Poll();

3.返回逆序的迭代器对象

 descemdingIterator(); 返回逆序的迭代对象

二、Vector集合类

Vector:描述的是一个线程安全的ArrayList使用和ArrayList一样

需要了解的是

VectorArrayList的区别:

  相同点:VectorArrayList底层都是用object[]来实现

  不同点:1.ArrayList是线程不同步,操作效率高

            Vector线程是同步的,操作效率低

          2.ArrayList是在 jdk1.2出现的,Vector是在 jdk1.0就有了。

三、Set集合类

  Set集合类 也是一个接口:继承Collection特点:无序的元素,不能重复。

hashSet存值的一个原理:

首先回调用对象的hashCode方法获取hashCode值,通过位移等运算获取一个位置。

情况1:如果位置上是没有元素,直接将元素存放在该位置

情况2:如果位置上已经有了元素,用对的的equals方法和位置上已经存在的对象作比较,如果equals返回的是true那就代表是重复对象,及局部村,如果返回的false将对象和原有的对象存在一起。

 

想要遍历Set集合:1.将集合变为数组2.通过迭代器来遍历(无序:添加的顺序和打印的顺序是不一样的。)

 四、TreeSet集合类

TreeSet集合类:使用元素的自然顺序对元素进行排序,底层使用二叉树来实现的。

注意:你存进去的对象需要具备自然排序的特性。

TreeSet使用注意点:

     1.TreeSet添加对象的时候,如果这个对象有自然排序的特性,就按照自然排序进行排序。

     2.TreeSet添加对象的时候,如果对象本身不具备自然排序的特性,运行的时候直接报错,如果需要存储对象,那么存的对象的类必须要实现Comparable接口 把元素的比较规则定义在compreTo方法中。

     3.TreeSet添加对象的时候,如果对象本身不具备自然排序的特性,并且没有实现Comparable接口,那么这个时候就需要创建一个TreeSet的时候传入一个比较器。

比较器的定义方式:

   Class 类名 implements Compartor{

}

4.如果类中实现了Comparable 接口 又在创建TreeSet时传入了一个比较器,这个时候以比较器为标准。

字符串的比较规则:

 1.获取字符串中的第一个值进行比较,通过自然排序比较,如果都是一样的就比较下一个值,还是一样在比较下一个,直到无法再比较   了,这时候就会比较字符串的长度。    

转载于:https://www.cnblogs.com/lizixiansheng/p/6134723.html

相关文章:

  • Autodesk Vault: 获取授权失败
  • 017,idea集成svn
  • 一个mysql的备份脚本(可以结合多实例进行调整)
  • Oracle Redo Log
  • 基于Maven引入Hadoop包报Missing artifact jdk.tools:jdk.tools:jar:1.6
  • List运用
  • EXP-00003: 未找到段xxx的存储定义
  • js-JavaScript高级程序设计学习笔记14
  • mysql数据库性能调优总结积累
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • awk 对列数据求和
  • 【哈佛幸福课·健康之道】锻炼的真相
  • 阿里云windows 2012服务器部署java web程序教程
  • 百度UEditor粘贴或插入的表格不显示边框的解决办法
  • 第十三章 Linux磁盘管理-RAID
  • CSS中外联样式表代表的含义
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • PHP的Ev教程三(Periodic watcher)
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 阿里云购买磁盘后挂载
  • 动态规划入门(以爬楼梯为例)
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 京东美团研发面经
  • 跨域
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 算法系列——算法入门之递归分而治之思想的实现
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #Java第九次作业--输入输出流和文件操作
  • #vue3 实现前端下载excel文件模板功能
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (13)Hive调优——动态分区导致的小文件问题
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (十八)三元表达式和列表解析
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (算法)求1到1亿间的质数或素数
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .Net Remoting(分离服务程序实现) - Part.3
  • .Net 高效开发之不可错过的实用工具
  • .NET运行机制
  • .net专家(张羿专栏)
  • /dev/sda2 is mounted; will not make a filesystem here!
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • [ 手记 ] 关于tomcat开机启动设置问题
  • []新浪博客如何插入代码(其他博客应该也可以)
  • [2009][note]构成理想导体超材料的有源THz欺骗表面等离子激元开关——
  • [Android] Upload package to device fails #2720