在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的更多相关文章

  1. paip.提升性能---list,arraylist,vector,linkedlist,map的选用..

    paip.提升性能---list,arraylist,vector,linkedlist,map的选用.. arraylist,vector基本一样,但是,vector线程安全的. 作者Attilax ...

  2. ArrayList Vector LinkedList(一)

    ArrayList Vector LinkedList 区别与用法 ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素, ...

  3. 请说出ArrayList,Vector, LinkedList的存储性能和特性

    请说出ArrayList,Vector, LinkedList的存储性能和特性 解答:ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都 ...

  4. ArrayList Vector LinkedList 区别与用法

    转载自: http://www.cnblogs.com/mgod/archive/2007/08/05/844011.html 最近用到了,所以依然是转载 ArrayList 和Vector是采用数组 ...

  5. Arraylist Vector Linkedlist区别和用法 (转)

    ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢 ...

  6. java集合(ArrayList,Vector,LinkedList,HashSet,TreeSet的功能详解)

    说起集合,我们会潜意识里想到另外一个与之相近的名词——数组,OK!两者确实有相似之处,但也正是这点才是我们应该注意的地方,下面简单列出了两者的区别(具体功能的不同学习这篇文章后就会明白了): 数组 长 ...

  7. Java ArrayList Vector LinkedList Stack Hashtable等的差别与用法(转)

    ArrayList 和Vector是采取数组体式格式存储数据,此数组元素数大于实际存储的数据以便增长和插入元素,都容许直接序号索引元素,然则插入数据要设计到数组元素移动等内存操纵,所以索引数据快插入数 ...

  8. 【转】ARRAYLIST VECTOR LINKEDLIST 区别与用法

    转自:http://www.cnblogs.com/mgod/archive/2007/08/05/844011.html ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实 ...

  9. 迭代器遍历列表 构造方法 constructor ArrayList Vector LinkedList Array List 时间复杂度

    package priceton; import java.io.IOException; import java.util.concurrent.CyclicBarrier; import java ...

随机推荐

  1. Dom4j操作XML文件

    1. 创建并写入XML public static void writeXML(String filename){ try { Document document = DocumentHelper.c ...

  2. win10下装Ubuntu双系统

    本机状况: ssd在笔记本原来的硬盘位,已经安装win10 机械硬盘在光驱位 现在安装Ubuntukylin16到光驱位的机械硬盘建立双系统,并用Windows管理启动 1,将下载的Ubuntu镜像用 ...

  3. mariadb 10.2.3支持oracle execute immediate语法

    在之前的版本包括oracle mysql/percona server版本中,所有的动态SQL都需要通过prepare执行,如下: "; execute stmt; deallocate p ...

  4. Xdebug文档(七) 远程调试

    Xdebug提示调试客户端接口与PHP运行相联系.该章节解释如何设置PHP与xdebug,并推荐一些客户端. 介绍 Xdebug的远程调试器允许你检查数据结构,交互式地穿过和调试你的代码.该协议已经开 ...

  5. HTML5 学习笔记(四)——canvas绘图、WebGL、SVG

    一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...

  6. golang官网可以打开了 go语言

    golang.org之前国内一直打不开,今天看了一下居然可以打开了,除了页面上youtube的视频加载不了.页面自动识别中文. 再也不用为下载go的源码发愁了.http://www.cnblogs.c ...

  7. angular源码分析:angular中脏活累活的承担者之$interpolate

    一.首先抛出两个问题 问题一:在angular中我们绑定数据最基本的方式是用两个大括号将$scope的变量包裹起来,那么如果想将大括号换成其他什么符号,比如换成[{与}],可不可以呢,如果可以在哪里配 ...

  8. 《ARC以及非ARC的讨论》

    ARC的机制是什么?它在那里放入retain/release函数调用? 请停止思考这些问题,把更多的精力放在下面的问题上,比如你的程序逻辑,对象的强,弱引用,对象的所属关系,可能的循环引用等问题上. ...

  9. SSIS,参数坑

    首先我有一个这样的饿存储过程, @procGuid 这个是 存放 guId的字符串 当如传入  0 的时候, @procGuid 会赋值,并且返回. ) ,@procGuid output print ...

  10. 如何自动化一键部署PHP项目

    1.技能需求 完成自动化一键部署PHP需要:PHP(略懂),Shell(略懂),git(略懂) 2.最终效果 输入密码,回车,5~20秒后(一般一天一次持续交付,部署的代码量和sql脚本都不会很大) ...