java 集合框架学习_Java学习---集合框架

Java学习---集合框架以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

36ffc90c3359fbdacf1b405ad3b1388f.png

集合框架概述集合框架是Java中非常重要的一种数据结构 它是用来存储对象的一个容器 在容器中可以存放多个多类型的元素 集合的概念进一步提高了java的封装思想 数据的杂乱多现象用类来封装 把各个需要的数据封装到一个具体类中 一类的形式体现对象的特性 集合是用来存储类多的现象 一层层的往上封装 体现给用户只是一个简单的接口 这在程序的开发和阅读性减轻的代码的复杂度 java的扩平台易扩展特性 充分体现出这一点 这是我个人的理解 集合中存放的元素不同 根据这些元素做了相应的处理和存储 根据不同的存储结构 集合分为了List集合和Set集合两大分支 List集合的特点就是元素具备角标 对List集合中元素的访问也多了一种方式 就是按照角标操作 List集合中的元素可以重复 Set集合的特点是元素不具备角标 元素不能重复 对元素的访问使用Iterator迭代器

集合的分类及特点Collection |——list 元素是有序的 元素可以重复 因为该集合体系有索引 取元素方式有两种 一种是for循环 一种是迭代器

ArrayList 底层数组结构 特点 增加删除比较慢 查询速度快 线程不同步

linkedList 底层是链表结构 特点 增加删除比较快 查询速度慢

特有方法 addFirst() addLast() getFirst() getLast() 获取元素 但不删除元素 如果没有元素会出现NoSuchElementException removeFirst() removeLast() 获取元素 但是元素被删除 如果没有元素会出现NoSuchElementException在JDK 出现了替代方法

OfferFirst() OfferLast() peekFirst() peekFirst() 获取元素 但不删除元素 如果没有元素不会出现NoSuchElementException pollFirst() pollLast() 获取元素 但是元素被删除 如果没有元素不会出现NoSuchElementException vector 底层是数组结构 线程同步 增删改查速度都慢 被ArrayList代替

枚举是vector特有的取出方式 vector有三种取出方式 枚举和迭代器很像

其实枚举和迭代是一样的 因为枚举的名称以及方法的名称比较长 被迭代器取代了

List集合判断元素是否相等使用是自身的equals方法 默认的equals方式 比较的是地址值 当我们比较元素是否相等时 如果判断的条件不一样时 需要复写equals方法

|——set 元素是无序 元素不重复 Set集合的方法和Collection是一致的

|——HashSet 底层结构式哈希表

在对HashSet集合存储元素的时候 首先调用hashCode()方法获得给对象的哈希值 当以后加入元素时 也是首先获得该元素的哈希值 然后跟集合中已有元素的h哈希值比较 如果哈希值不等 不会调用equals()方法 元素存储成功 如果新加元素和已有某个元素的哈希值相同 在调用equals()判断是否为同一元素 做进一步的判断 这个可以根据自己的条件复写hashCode()和equals() HashSet集合对元素不会进行默认排序 lishixinzhi/Article/program/Java/gj/201311/27284

分页:123

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值