`
dreamstone
  • 浏览: 284711 次
  • 来自: ...
文章分类
社区版块
存档分类

Java中的容器 ArrayList

阅读更多

Java中的容器 ArrayList
学习、使用java中的容器,应改了解以下这些问题
1,容器的作用
2,与其它容器的区别
3,知识点

先说一:(作用是简单的,到处都能看到,不详说)
首先要知到容器的作用,知到了作用才能开始使用它,首先我们应改知到ArrayList是一个容器,你可以往里边
放任何的object(object的意思就使说基础类型不行了,不过可以放基础类型对应的类).所以当你有很多对象
须要保存的时候,可以选择它)

二:这个是比较总要的,因为学会使用一个容器是很容易的,恰当的使用才是重要的。
对比Hashet ArrayList LinkedList
这些都是比较常见的,在什么情况下选择哪个呢,那首先了解一下他们的实现
HashSet基于HashMap的,HashMap是利用hash表实现的一个key-value的映射
LinkedList是基于链表的。
ArrayList是基于数组的

    优点                      缺点
HashSet    保正无重复,随机读取快         插入时消耗大,无序
ArrayList  插入快,按照index读取快    删除或者无序插入慢
LinkedList 插入,删除快        随机读取慢
知到了上边的这些,那么我们就可以来选择了。根据自己的需求,选择相应的容器

三:每个类库的使用,都有一些须要注意的地方,用的好了能够优化性能。首先看一下ArrayList的实现
实现里边有个重要的函数,就使在长度不够的时候的扩充和无参构造函数
public ArrayList() {
 this(10);
    }
无参构造函数告诉我们,默认ArrayList的长度是10个   
public void ensureCapacity(int minCapacity) {
 modCount++;
 int oldCapacity = elementData.length;
 if (minCapacity > oldCapacity) {
     Object oldData[] = elementData;
     int newCapacity = (oldCapacity * 3)/2 + 1;
         if (newCapacity < minCapacity)
  newCapacity = minCapacity;
     elementData = (E[])new Object[newCapacity];
     System.arraycopy(oldData, 0, elementData, 0, size);
 }
}
扩充函数告诉我们扩充的算法是(oldCapacity * 3)/2 + 1
同时,如果我们在使用ArrayList的时候知到了须要存放的对象的个数,在初始化ArrayList的是否,不妨加上
参数new ArrrayList(200);这样,ArrayList不许要一次次的扩充,一次次的拷贝,对性能提高是有帮助的。

然後看到jdk1.5中添加的新东西,其实应改不算新了。很像c++中的template
jdk1.5中加入了泛型,如下使用。
ArrayList<String> strList = new ArrayList<String>();
另外如果想更深入的了解泛型,候捷有一篇文章,讲的很详细
google 候捷 jdk1.5 泛型 就能找到

 

分享到:
评论

相关推荐

    Java容器ArrayList原理解析

    主要介绍了Java容器ArrayList原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    java对象容器(涉及HashMap,ArrayList,Set等)

    该PPT详尽地描述了Java对象容器的属性以及如何使用,不用多说,Java对象容器如ArrayList,List,Set,HaspMap等都是极为重要的容器类,学好这个无疑把握了Java的灵魂所在

    Java容器ArrayList知识点总结

    本篇文章给大家分享了Java容器ArrayList的相关知识点,对此有需要的朋友可以跟着学习参考下。

    java中容器类ArrayList(底层数组实现)和数组存取效率简单测试

    NULL 博文链接:https://ruyi574812039.iteye.com/blog/2072373

    Java容器类List、ArrayList、Vector及map、HashTable应用

    Java容器类List、ArrayList、Vector及map、HashTable应用 List、ArrayList、Vector及map、HashTable是Java中常用的容器类,它们都继承自Collection接口,并提供了不同的实现方式和特点。在实际开发中,选择合适的...

    Java容器集合(equals 和 hashCode+基础数据结构+ArrayList+Vector和LinkedList)

    其中,equals和hashCode方法是Java容器集合中两个非常重要的方法,本文将详细介绍这两个方法,并结合ArrayList、Vector和LinkedList三个常见的容器集合。 一、equals方法 equals方法是Java中用于比较两个对象是否...

    Java源码篇之容器类——ArrayList

    Java源码篇之容器类——ArrayList1、前言2、ArrayList的类关系3、ArrayList的源码一、类的属性二、add()方法三、get()方法四、remove()方法五、set()方法4、总结 1、前言 对于平常开发的时候遇到的ArrayList,在此做...

    Java 容器.pdf_电子版pdf版

    Java 容器是 Java 语言中的一种集合类库,主要包括 Collection 和 Map 两种类型。Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表。 Collection Collection 是一种集合接口,提供了对集合...

    Java集合容器面试题

    Java 集合容器是 Java 语言中的一种数据结构,用于存储和操作数据。集合容器框架是 Java 中的一个重要组件,提供了一种统一的标准来存储和操作数据。下面是关于 Java 集合容器的知识点: 集合容器概述 集合容器是...

    Java 中模仿源码自定义ArrayList

    主要介绍了Java 中模仿源码自定义ArrayList的相关资料,需要的朋友可以参考下

    JAVA容器讲解.pdf

    Java容器讲解PPT,Collection Map(HashMap TreeMap LinkedHashMap) List (ArrayList LinkedList Vector) Set (HashSet TreeSet LinkedHashSet)

    Java容器有两种基本类型Collection 和 Map

    Collection 和 Map 是 Java 中的两种基本容器类型,它们都可以用来存储和管理对象,但它们有着不同的特点和用途。 Collection 是一种聚集对象的容器,每个位置只能保存一个元素。Collection 的主要实现类有 List 和...

    郑州大学java实验报告

    * ArrayList:ArrayList是Java中的一个容器类,用于存储多个对象。ArrayList可以动态增长和缩小。 * LinkedList:LinkedList是Java中的一个容器类,用于存储多个对象。LinkedList可以动态增长和缩小。 * HashMap:...

    迅速掌握Java容器中常用的ArrayList类与Vector类用法

    主要介绍了Java容器中常用的ArrayList类与Vector类用法,文中只对其最基本的功能给出了示例代码,需要的朋友可以参考下

    Java容器框架 collection集合

    java集合框架总结 Collection体系结构 ArrayList源码解读 HashMap HashSet 深入讲解java集合框架

    基础深化和提高-java容器

    Java容器提供了一种统一的方式来组织和管理多个对象,使得开发者能够更加方便地对这些对象进行操作和处理。 Java容器主要分为两大类:Collection 和 Map。 Collection: Collection表示一组对象,它的主要子接口...

    think in java线程和容器2

    java线程中容器使用技术,比如List接口是在Collection的基础上添加了大量方法,有两种基本类型:ArrayList,它擅⻓于随机访问元素,但是List中间插入或移除元 素时较慢;LinkedList,它和ArrayList的特性正好相反。...

    Java容器.xmind

    ArrayList 标记: class CRUD : boolean add​(E e) boolean remove​(Object o) E set​(int index, E element) E get​(int index) 底层数组实现,查询快,增删慢 LinkedList 标记: class CRUD : boolean add...

    java中set、list和map的使用方法实例

    // java中对象容器主要有Set,List和Map三个接口类。 // 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 // GOF给出的定义为:提供一种方法访问一个容器(container)对象中的各个元素, // 而又不需暴露该...

Global site tag (gtag.js) - Google Analytics