技术中心

这里象征着我们的态度和能力

>Java学习---集合框架
发布者:中国IT实验室    信息来源:中国IT实验室    发布时间:2012-01-09      浏览次数:4580
分享到:

新浪微博

腾讯微博

QQ空间

豆瓣网

QQ好友

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

    Java学习---集合框架

    1,集合框架概述

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

    2,集合的分类及特点

    Collection:

    |--list:元素是有序的,元素可以重复,因为该集合体系有索引。取元素方式有两种:一种是for循环,一种是迭代器。

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

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

    特有方法:

    addFirst();addLast();

    getFirst();getLast();获取元素,但不删除元素。如果没有元素会出现NoSuchElementException

    removeFirst();removeLast();获取元素,但是元素被删除。如果没有元素会出现NoSuchElementException

    在JDK1.6出现了替代方法。

    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集合对元素不会进行默认排序。

    注意:对于判断元素是否存在,以及删除等操作,依赖的方法是元素hashCode和equals

    |--TreeSet:可以对set集合中的元素进行排序。TreeSet集合中的元素要具备比较性,存储多个不具备比较性的元素,编译时会报错。是元素具备比较性的方式有两种:实现comparable接口和在创建集合时传递比较器comparator。

    3,集合的实例分析。

4000-880-989
(24小时热线)
联系客服
微信公众号

官方公众号

小程序

©2008-2022 CORPORATION ALL Rights Reserved. 版权所有 滇ICP备09003328号-1 滇公网安备 53011102000818号
昆明那家网络公司好,新媒体运营,网站优化,网络推广,网站建设,网页设计,网站设计,网站推广,云南网站公司,昆明新媒体公司,云南网红主播,昆明SEO公司,昆明网站建设,昆明网络推广,昆明网站优化,昆明网站推广,红河网站建设,大理网络公司,曲靖网络公司,丽江网站设计,昭通网络公司,保山大数据服务,智慧高速建设,智慧校园服务,云南IDC服务商,网络安全测评,等保测评,网站关键词排名优化服务,服务客户尽超2000余家,一切尽在奥远科技,服务电话:13888956730
Baidu
map