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原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
该PPT详尽地描述了Java对象容器的属性以及如何使用,不用多说,Java对象容器如ArrayList,List,Set,HaspMap等都是极为重要的容器类,学好这个无疑把握了Java的灵魂所在
本篇文章给大家分享了Java容器ArrayList的相关知识点,对此有需要的朋友可以跟着学习参考下。
NULL 博文链接:https://ruyi574812039.iteye.com/blog/2072373
Java源码篇之容器类——ArrayList1、前言2、ArrayList的类关系3、ArrayList的源码一、类的属性二、add()方法三、get()方法四、remove()方法五、set()方法4、总结 1、前言 对于平常开发的时候遇到的ArrayList,在此做...
List、ArrayList、Vector及map、HashTable、HashMap的区别与用法 使用容器排序 Vector由于使用了synchronized方法(线程安全)
Java容器集合(equals 和 hashCode+基础数据结构+ArrayList+Vector和LinkedList)
主要介绍了Java 中模仿源码自定义ArrayList的相关资料,需要的朋友可以参考下
Java容器讲解PPT,Collection Map(HashMap TreeMap LinkedHashMap) List (ArrayList LinkedList Vector) Set (HashSet TreeSet LinkedHashSet)
主要介绍了Java容器中常用的ArrayList类与Vector类用法,文中只对其最基本的功能给出了示例代码,需要的朋友可以参考下
java集合框架总结 Collection体系结构 ArrayList源码解读 HashMap HashSet 深入讲解java集合框架
Java容器提供了一种统一的方式来组织和管理多个对象,使得开发者能够更加方便地对这些对象进行操作和处理。 Java容器主要分为两大类:Collection 和 Map。 Collection: Collection表示一组对象,它的主要子接口...
java线程中容器使用技术,比如List接口是在Collection的基础上添加了大量方法,有两种基本类型:ArrayList,它擅⻓于随机访问元素,但是List中间插入或移除元 素时较慢;LinkedList,它和ArrayList的特性正好相反。...
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三个接口类。 // 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 // GOF给出的定义为:提供一种方法访问一个容器(container)对象中的各个元素, // 而又不需暴露该...
在Java当中,如果有一个类专门用来存放其它类的对象,这个类就叫做容器,或者就叫做集合,集合就是将若干性质相同或相近的类对象组合在一起而形成的一个整体之所以需要容器:1、数组的长度难以扩充2、数组中数据的...
利用Java容器类ArrayList实现记事本,可增加、删除、获取记录、获取长度等功能
该资源为本人面试前整理的Java容器类的资料,分析描述了Collection、List、ArrayList、Vector及map、HashTable、HashMap区别,可用来复习。
Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理 Java集合详解2:Queue和LinkedList Java集合详解3:Iterator,fail-fast机制与比较器 Java集合详解4:HashMap和HashTable Java集合详解5:深入...