ArrayList,Vector,LinkedList
在java.util包中定义的类集框架其核心的组成接口有如下:
·Collection接口:负责保存单值的最大父接口
|-List子接口:允许保存重复元素,数据的保存顺序就是数据的增加顺序;
|-Set子接口:不允许保存重复元素,并且内部的元素可以进行调整
·Map接口:提供key与value的匹配信息
·输出接口: Iterator、ListIterator、Enumeration
结论:所有的集合保存数据的目的都是为了输出
·Collection 保存数据的目的纯粹只是为了输出,所以最关注的就是增加数据和输出数据的操作
·Map 保存数据的目的是为了根据key查找value,是为了查找准备的
package com.wzy.list; import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector; class A {
A(String name,int id){
this.name = name;
this.id = id;
} String name;
int id;
@Override
public boolean equals(Object obj) {
return (this.name.equals(((A)obj).name))&&(this.id==((A)obj).id);
}
@Override
public String toString() {
return name+" : "+id;
}
} public class Test {
public static void main(String[] args) { /* Vector比ArrayList老,现在基本上都用ArrayList
* 两者用法类似
* ArrayList(90%) vs Vector(10%)
* 推出时间:jdk1.2 jdk1.0
* 性能: 异步,性能高 同步,性能低
* 安全性: 不 安全 安全<synchronized>
* 输出: Iterator, Iterator,
* ListIterator, ListIterator,
* forEach forEach
* Enumeration
*
* ArrayList vs LinkedList
* 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
* */
List<A> list = new ArrayList<A>();
// List<A> v = new Vector<A>();
// List<A> l = new LinkedList<A>(); list.add(new A("a",));
list.add(new A("b",));
list.add(new A("c",));
list.add(new A("d",)); System.out.println(list.size());
//想移除对象,必须重写equals方法;如果移除字符串可以直接移除,不用重写equals
list.remove(new A("b",));
System.out.println(list.size()); list.forEach(System.out::println); }
}

ArrayList,Vector,LinkedList的更多相关文章
- paip.提升性能---list,arraylist,vector,linkedlist,map的选用..
paip.提升性能---list,arraylist,vector,linkedlist,map的选用.. arraylist,vector基本一样,但是,vector线程安全的. 作者Attilax ...
- ArrayList Vector LinkedList(一)
ArrayList Vector LinkedList 区别与用法 ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素, ...
- 请说出ArrayList,Vector, LinkedList的存储性能和特性
请说出ArrayList,Vector, LinkedList的存储性能和特性 解答:ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都 ...
- ArrayList Vector LinkedList 区别与用法
转载自: http://www.cnblogs.com/mgod/archive/2007/08/05/844011.html 最近用到了,所以依然是转载 ArrayList 和Vector是采用数组 ...
- Arraylist Vector Linkedlist区别和用法 (转)
ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢 ...
- java集合(ArrayList,Vector,LinkedList,HashSet,TreeSet的功能详解)
说起集合,我们会潜意识里想到另外一个与之相近的名词——数组,OK!两者确实有相似之处,但也正是这点才是我们应该注意的地方,下面简单列出了两者的区别(具体功能的不同学习这篇文章后就会明白了): 数组 长 ...
- Java ArrayList Vector LinkedList Stack Hashtable等的差别与用法(转)
ArrayList 和Vector是采取数组体式格式存储数据,此数组元素数大于实际存储的数据以便增长和插入元素,都容许直接序号索引元素,然则插入数据要设计到数组元素移动等内存操纵,所以索引数据快插入数 ...
- 【转】ARRAYLIST VECTOR LINKEDLIST 区别与用法
转自:http://www.cnblogs.com/mgod/archive/2007/08/05/844011.html ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实 ...
- 迭代器遍历列表 构造方法 constructor ArrayList Vector LinkedList Array List 时间复杂度
package priceton; import java.io.IOException; import java.util.concurrent.CyclicBarrier; import java ...
随机推荐
- visual studio 2015 开发android
转载请注明: http://www.cnblogs.com/sunyl/p/5493249.html http://www.cnblogs.com/sunyl/ 最近有不少新闻, 甲骨文向谷歌索赔93 ...
- SSH输入错误Action
在类型转化.输入验证校验 .文件上传等出错的时候,如Action中某个变量是int,而上传的值是"ABC",此时Action不会执行execute()函数,而是直接返回result ...
- No.026:Remove Duplicates from Sorted Array
问题: Given a sorted array, remove the duplicates in place such that each element appear only once and ...
- mybatis入门
1.什么是MyBatis ? 亲爱的度娘是这样说的: MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation ...
- php 文件下载
public function down() { header("Content-type:text/html;charset=utf-8"); $file_name = I('g ...
- 【JavaScript】获取未知类的结构
目录结构: // contents structure [-] 为什么需要获取类的结构 关于JavaScript中的类 定义类的方法 第一种 第二种 DEMO HTML页面 date文件 注意事项 参 ...
- 程序员用HTML5给女朋友制作的3D相册
程序员给女朋友用HTML5制作的3D相册,使用鼠标拖拽,能看到3D旋转效果,点击相片,相片能放大,移近.程序员发挥自己的专长,这是那些不懂编程的人望尘莫及的.本相册使用了HTML5的画布技术,需要谷歌 ...
- 如何使用grunt压缩js文件
jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用! 1. 前言 各位web前端开发人员,如果你现在还不知道grunt或者听说过 ...
- HTTP 协议整理(转)
HTTP 协议 作为web开发人员,了解一些http协议的知识很有必要.本文简单介绍了HTTP协议的知识,若有错误的地方,望大家斧正. 1.HTTP协议是什么? http协议是一个应用层的协议.规定了 ...
- 3D banner(CSS3+HTML5)
1.这是一篇 3Dbanner制作的简易流程,支持高版本的chrome和firefox浏览器,俩浏览器显示可能会有些差异 2.没有兼容性代码,因为仅仅只是熟悉流程,希望小伙伴们自己改善哈(>﹏& ...