• 五大知识点:

    • 1.Collection和Iterator接口
    • 2.Set(集):HashSet、TreeSet(不允许重复)
    • 3.List(列表):ArrayList、LinkedList(允许重复)
    • 4.Map(映射):HashMap、TreeMap(不允许重复)
    • 5.算法类:Collections、Arrays
  • 集合(Collection):
  • 含义:将多个元素(或对象)放在一个单元的方法
  • 作用可以让方法返回一个集合对象,而集合中又装入了很多不同类型的Java对象,从而实现装载和传输数据的功能
  • 所有的Java集合Collection类都位于Java.util包中
  • Collection和Iterator接口:
  • 在Collection接口中声明了适合的Java集合的通用方法,见下表:
  • 方法

    描述

    boolean add(Object o)

    向集合中加入一个对象的引用

    void clear()

    删除集合中的所有对象,即不再有对象的引用

    boolean contains(Object o)

    判断在集合中是否持有对象的引用

    boolean isEmpty()

    判断集合是否为空

    Iterator iterator()

    返回一个Iterator对象,可以用来遍历集合中的元素

    boolean remove(Object o)

    从结合中删除一个对象的引用

    int size()

    返回集合中元素的个数

    Object[] toArray()

    返回一个数组,该数组包含集合中的所有元素

  • Set接口和List接口都继承了Collection接口,而Map接口没有继承Collection接口,因此只可以对Set和List调用以上方法
  • Iterator接口隐藏底层集合的数据结构,提供遍历各种类型的集合的统一接口,Iterator接口中声明的如下方法:
    • hasNext():判断集合中的元素是否遍历完毕,如果没有,则返回true
    • next():返回下一个元素
    • remove():从集合中删除上一个由next()方法返回的元素
  • Set(集):
  • Set集是最简单的一种集合,集合的对象不安特定方式排序,并且没有重复对象
  • HashSet类:
    • 按照哈希算法来存取集合的对象,具有很好的存取和查找功能,但无排序功能,如果要将HashSet类进行排序,需要将集合转换成数组再对数组进行排序,用toArray()方法
  • TreeSet类:
    • 能够对集合中的对象进行排序,它支持两种排序方式,自然排序和客户化排序,默认情况下采用自然排序
    • TreeSet方法调用CompareTo()方法比较集合中对象的大小,然后进行排序,这种方式就是自然排序
  • 注意:

    使用自然排序时,只能向TreeSet集合加入同类型的对象,并且这些对象的类必须实现Comparable接口

    四、List(列表):

  • List列表的主要特征是其元素以线性方式存储,集合中允许存放重复对象,它的主要实现类包括:
  • ArrayList:代表长度可变的数组,允许对元素进行快速的随机访问,但插入与删除元素速度较慢
  • LinkedList:在实现中采用链表数据结构,插入与删除元素速度较快,随机访问速度则相对较慢,LinkedList单独具有addFirst()、addLast()、getFirst()、getLast()、removeFirst()、removeLast()方法,这些方法可以使得LinkedList可以作为堆栈,队列和双向队列使用
  • List允许访问下标,即可以用collections方法对List进行排序(用for循环)
  • List只能对集合中的对象按照索引位置排列,如果希望对List中的对象按照其它特定方式排序,可以借助Collections和Comparable接口(或Comparator接口)。Collections类是Java集合类库中的辅助类,它提供了操纵集合的各种静态方法,其中sort()方法用于对List中的对象进行排序:
    • sort(List list):对List中的对象进行自然排序,但不能对Set进行排序
    • sort(List list,Comparator comparator):对List中的对象进行客户化排序
    • reverse(List list):对已经排好升序的的集合进行降序排列
  • ListIterator接口:List的listIterator()方法返回一个ListIterator对象,ListIterator接口继承了Iterator接口,此外还专门提供了操纵列表的方法:
    • add():向列表插入一个元素
    • hasNest():判断列表中是否有下一个元素
    • hasPrevious():判断列表是否还有上一个元素
    • next():返回表中的下一个元素
    • previous():返回表中的上一个元素
  • 五、Map(映射):

  • Map是一种把键对象进行映射到集合,即给每个值都取个别名,没有迭代方法
  • HashMap:
  • 作用:以“键key” à“值”的方式存储元素,建立一对一的访问关系,一般key值不能相同,而值可以相同

  • 放值:对象.put(”名”,”值”);
  • 取值:Object obj = 对象.get(”名”);
  • keySet()方法用于获取Map中所有的名称
  • TreeMap:实现了SortedMap接口,能对键对象进行排序,也分自然排序和客户化排序两种方式
  • 六、算法类:Collections、Arrays

  • Collections:用于对List进行排序
  • Arrays:用于对数组进行排序
  • 七、英语角:

    Set      集合      List     列表        Map      映射

集合 - Java篇相关推荐

  1. map根据value值排序_凯哥带你从零学大数据系列之Java篇---第十九章:集合(Map+Collections)...

    温馨提示:如果想学扎实,一定要从头开始看凯哥的一系列文章(凯哥带你从零学大数据系列),千万不要从中间的某个部分开始看,知识前后是有很大关联,否则学习效果会打折扣. 系列文章第一篇是拥抱大数据:凯哥带你 ...

  2. Java 集合容器篇面试题(上)-王者笔记《收藏版》

    前期推荐阅读: Java基础知识学习总结(上) Java 基础知识学习总结(下) 大学生一个暑假学会5个神仙赚钱技能 | 你学会了几个? 毕设/私活/大佬必备,一个挣钱的开源前后端分离脚手架 目录 一 ...

  3. 面试宝典Java篇(基础+高级+集合+线程+IO+JVM)

    一.Java篇 1.1 Java基础篇 1.请你讲讲&和&&的区别? &运算符有两种用法:(1)按位与:(2)逻辑与. &&运算符是短路与运算. 逻辑与 ...

  4. 明翰Java教学系列之集合框架篇V0.2(持续更新)

    文章目录 传送门 前言 什么是集合框架 集合框架体系 Collection接口 `Set接口` `HashSet` LinkedHashSet TreeSet EnumSet Queue接口 Prio ...

  5. android java框架_【阿里P8大牛教你Android入门之路(java篇)】——Java集合框架(系列篇1)...

    一.前言 本部分内容主要包含以下: Java集合 Java反射 Java注解 Java反射 Java IO 其他面试点 以上内容都是Java中的基础知识,对于Java的学习很有帮助.其中集合.反射.I ...

  6. JSON总结(java篇)

    JSON总结(java篇一) JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于 ...

  7. 多层数组如何遍历_带你从零学大数据系列之Java篇---第五章:数组

    温馨提示:如果想学扎实,一定要从头开始看凯哥的一系列文章(凯哥带你从零学大数据系列),千万不要从中间的某个部分开始看,知识前后是有很大关联,否则学习效果会打折扣. 系列文章第一篇是拥抱大数据:凯哥带你 ...

  8. 明翰Java教学系列之认识Java篇V1.3(持续更新)

    文章目录 传送门 前言 什么是Java? Java之父 `Java的应用场景` Java部分特点 Java工作机制 JDK(Java Development Kit) JRE(Java Runtime ...

  9. Java私塾跟我学系列——JAVA篇 第四章Java类和对象

    教学目标: i面向对象基础 i掌握对象的三大特性 i掌握Java类的构建 i掌握如何使用Java类 i理解引用类型 i理解按值传递和按引用传递 i深入理解变量 i掌握包装类 i理解类型转换 i理解Ja ...

最新文章

  1. 【mycat】简介及安装
  2. python四大软件-PYPL 9月编程语言排行榜发布 Python一枝独秀
  3. Maven安装与配置——手把手教程
  4. C# API强制关机、重启以及注销计算机
  5. 8051单片机指令和寻址方式
  6. svn: 无法连接主机“127.0.0.1”: 拒绝连接
  7. codeforces 493 D Vasya and Chess【 博弈 】
  8. 基于R语言的贝叶斯网络模型、现代贝叶斯统计学方法
  9. 中控考勤机无线连接不上服务器,中控考勤机安装及常见问题【图解】
  10. 工程测量计算机在线用,工程测量中的计算机编程新技术.doc
  11. codeblocks安装教程和文件的简单创建方法
  12. 公用计算机不使用键盘鼠标,鼠标键盘同时不能用了怎么回事_电脑的键盘和鼠标不能同时用如何解决...
  13. php 汉字拼音字典排序,按拼音排序的小技巧
  14. windows2016安装.net3.5错误:0x80070057;错误:0x800f081f
  15. 服务器vga接显示器无信号,显示器用HDMI转VGA接口后,无信号怎么解决
  16. 解决virtualbox虚拟机unbuntu20.04无法识别u盘、sd卡
  17. 交叉碳市场和 Web3 以实现再生变革
  18. C++实现基于博弈树的5x5一子棋人机对战
  19. (投影:Projector)Unity Projector 投影器原理以及优化
  20. Openzeppelin库第八期:Crowdsale

热门文章

  1. 【实习日记】实习第N天 从零开始搭建一个tiktok puppet(一)
  2. 各大互联网公司技术分享
  3. 数据结构与算法---均摊时间复杂度
  4. 应用程序无法正常启动(oxc000007b)
  5. docker搭建fdfs实现缓存图片视频
  6. php cli python,PHP MVC框架 CodeIgniter CLI模式简介
  7. 加拿大约克大学计算机科学专业怎么样,加拿大约克大学优势专业有哪些?
  8. 想和程序员小哥哥做朋友
  9. 用HTML5实现十里桃花歌词的打印(一)
  10. 完备性的定义(ZZ)