前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >day5(面向对象2)

day5(面向对象2)

作者头像
小二三不乌
发布2018-08-02 10:25:09
1810
发布2018-08-02 10:25:09
举报

集合类

集合框架(体系概述)

为什么出现集合类? 数组是固定长度的,集合是可变长度的。 为什么出现这么多的容器? 因为每一个容器对数据的存储方式都有不同。这个存储方式称之为:数据结构。

##集合框架(共性方法)

迭代器

什么是迭代器? 其实就是集合中元素的取出方式。 把取出方式定义在集合的内部,这样取出方式就可以直接访问集合内容的元素。那么取出方式就被定义成了内部类。而每一个容器的结构数据不同,所以取出的动作细节也不一样。但是都有共性内容:判断和取出。那么可以将这些共性抽取。

List

List集合共性方法

List:元素是有序的,元素可以重复,因为该集合体系有索引。 Set:元素是无序的,不能重复。 List:特有方法:凡是可以操作角标的方法都是该体系特有的方法。 增:add addAll 删: remove 改:set 查:get subList listIterator

ListIterator

在迭代器时,只能用迭代器的方法操作元素,可是Iterator方法是有限的,只能对元素进行判断,取出,删除的操作,如果想要其他的操作如添加,修改等,就需要使用其子接口,ListIterator。 该接口只能通过List集合的ListIterator方法获取。

List集合具体对象的特点

List: ArrayList:底层的数据结构使用的是数组,查找很快,但是增删稍慢 (可变长度的) Linkedlist:底层使用的是链表数据结构。特点是增删速度很快,查询稍慢 Vector:底层是数组数据结构。线程同步,被ArrayList替代了 ,现在一般不用了。枚举是Vector特有的取出方式。发现枚举和迭代器很像。其实枚举和迭代是一样的。因为枚举的名称以及方法的名称都过长。所以被迭代器取代了。

LinkedList

LinkedList特有方法:addFirst(),addLast(),getFirst(),getLast(),removeFirst(),removeLast() JDK1.6出现了替代方法。 offerFriest peekFirst poolFirst 堆栈:先进后出 队列: 先进先出 FIFO List集合判断元素是否相同,依据的是元素的equals方法。

##set set:元素是无序(存入和取出的顺序不一定一致) set集合的功能和collection是一致的。 HashSet:底层数据结构是哈希表。HashSet是如何保证元素的唯一性的呢?是通过元素的两个方法。hashCode和equals来完成。如果元素的HashCode值相同,才会判断equals是否为true,如果元素的hashCode不同,不会判断equals。 注意:对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode和equals方法。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-03-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 集合类
    • 集合框架(体系概述)
      • 迭代器
        • List
          • List集合共性方法
          • ListIterator
          • List集合具体对象的特点
          • LinkedList
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档