Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1589755
  • 博文数量: 43
  • 博客积分: 169
  • 博客等级: 入伍新兵
  • 技术积分: 1162
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-08 15:35
文章分类

全部博文(43)

文章存档

2021年(1)

2019年(4)

2016年(6)

2015年(8)

2013年(19)

2012年(5)

分类: Java

2013-03-23 12:38:59

java持有对象-集合类


    java持有对象-集合类:所谓集合类即能够像容器一样装载类实例的容器,也有人称其为容器类。它和日常生活中的容器所实现的功能很是类似,这也应证了java的面向对象思想,将生活中的实体抽象成类。又如曾经学过的数学集合那样,集合内包含的事物称为元素。在我的脑海里,通常将java的集合类比作生活中的一种容器,比如我们用的装水果的器皿一样,这个器皿就是集合(collection)里面的水果就是元素(element)。这样你就会很容易的去理解集合类了。然而java中的集合类则代表的是一种数据结构,它不单单的被用作承载元素的器皿,其最大的贡献是以某种更加合理的方式进行存取里面的元素。下面就来认识一下何为java集合类。
    java集合类按照其存取数据的格式分为两类:一类,单一对象存取(collection系),即每个元素存储单元内只存储一个对象实例;另一类,双对象存取(map系)即每个元素所占存储单元内存储两个对象实例(key-value)的形式。下面将一一介绍collection系和map系的结构。
    首先是collection系:
    collection作为根接口,提供了对于collection系容器类的最基本存取方式。下辖很多子类及抽象类,如果我们要自定义自己的collection系集合类,那么必须实现此接口。
    1、其底层数据结构有两种形式:以ArrayList为代表的数组结构和以LinkedList为代表的双向链表结构(Set之后再说)。
    2、ArrayList和LinkedList区别:
         由于其自身的存储结构,ArrayList对于数据的访问效率较LinkedList要快,但是也由于底层是数组的原因当在ArrayList中间进行增删操作时效率就不如LinkedList了。这样也为用户提供了一定的选择空间,用户可以按照自身的应用场景来选择用何种方式存储数据。再言LinkedList,作为一种链表式存储结构的代表,功能已经很完善。并且也为栈(Stack)和队列(Queue)提供了更好的实现方式。
    3、栈(Stack)
        是一种FILO(first in last out)数据存取结构,也称最短等待时间读取数据结构。在java中实现栈功能的是通过提供的AbstractList来实现其功能的。
    4、队列(Queue)
        是一种FIFo(first in first out)数据存取结构,也称其为最长等待时间读取数据结构。在java中通过双向链表LinkedList来实现其功能的。LinkedList通过实现Queue接口来提供对链表的访问,最终实现对队列的操作。java中同时也提供了一种优先访问队列PriorityQueue,提供了一种由用户自定义优先访问级别的队列访问权限。
   其次是map系:
     Map系是以键-值对进行数据存储的。区别于collection系于每个元素中存放两个对象实例(key-value),在进行访问时通过key值来获取value。
    分类:
   1、hash存储方式
        hash存取方式的典型代表HashMap,进行数据存储是通过散列表算法进行存取。在读取数据时效率较链表或数组更高。当然这种方式读取时是无序。
    2、tree存储方式
        待续……
阅读(3717) | 评论(0) | 转发(1) |
1

上一篇:java内部类

下一篇:sqlserver分布式操作

给主人留下些什么吧!~~