List:有序,有索引,可重复。

|--ArrayList:底层数据结构是 数组结构.是线程不同步的(不安全的).查询速度很快,但是增删较慢。

构造一个初始容量为 10 的空列表,当放满了10个元素后,以50%的长度加长集合容器的长度。

List 接口的大小可变数组的实现,即:可以直接指定容量大小

|--LinkedList:底层数据结构是 链表结构。对元素的增删速度很快。但是查询速度很慢。线程是不同步的。

|--Vector:底层数据结构也是数组结构,是线程同步的(安全的),效率低,被ArrayList替代了。1.2版本以后的集合都是不同步的

当放满了10个元素后,以100%的长度加长集合容器的长度。

1,首先看一下LinkedList(ArrayList不做介绍)

package cn.java.collection.list;

import java.util.Collection;

import java.util.Iterator;

import java.util.LinkedList;

public class LinkedListDemo {

/*

LinkedList中的一些方法在JDK1.6以后有了替代。

addFirst();

addLast();

JDK1.6:

offerFirst();

offerLast();

getFirst();如果链表中没有元素,获取出现异常。NoSuchElementException

getLast();

JDK1.6:

peekFirst();如果链表中没有元素,则返回null。

peekLast();

removeFirst();如果链表中没有元素,获取出现异常。NoSuchElementException

removeLast();

JDK1.6:

pollFirst();如果链表中没有元素,则返回null。

pollLast();

*/

public static void sop(Object obj)

{

System.out.println(obj);

}

public static void main(String[] args)

{

LinkedList link = new LinkedList();

//System.out.println("heihei……"+link.getFirst());//如果链表中没有元素,获取出现异常。NoSuchElementException

System.out.println("heihei……"+link.peekFirst());//jdk1.6以后的方法,如果链表中没有元素,返回null

//System.out.println("heihei……"+link.removeLast());//如果链表中没有元素,获取出现异常。NoSuchElementException

System.out.println("heihei……"+link.pollLast());//jdk1.6以后的方法,如果链表中没有元素,返回null

//链表的特有方法。添加.

link.addFirst("abc1");

link.addFirst("abc2");

link.addFirst("abc3");

link.addFirst("abc4");

//link.addLast("abc5");

for(int x=0; x

{

System.out.println("get:"+link.get(x));

}

/*for(int x=0; x

{

System.out.println("x="+x+"...size="+link.size());

System.out.println(link.removeFirst());

}*/

printColl(link);//这里也可以将Linkedlist作为一个参数传递给超类Collection,然后用Collection的获取方法,如果使用了迭代器,则不能同时使用collection本身的增加,修改,删除

while(!link.isEmpty())

{

System.out.println("remove:"+link.removeFirst());

}

System.out.println("----------------------");

link.add("weiba");

link.clear();

System.out.println(link);//打印出来为一个空的数组:[]

/*sop("getFirst:"+link.getFirst());//获取元素,长度不改变。如果链表中没有元素,获取出现异常。NoSuchElementException

sop("getLast:"+link.getLast());

sop("get size="+link.size());

sop("removeFirst:"+link.removeFirst());//获取元素,但是元素被删除,长度会改变。如果链表中没有元素,获取出现异常。NoSuchElementException

sop("removeLast:"+link.removeLast());

sop("remove size="+link.size());*/

}

public static void printColl(Collection coll)

{

Iterator it = coll.iterator();

while(it.hasNext())

{

//此处不能调用coll.remove(it.next());否则会报java.util.ConcurrentModificationException

System.out.println("haha"+it.next());

}

}

}

上面类中main方法执行结果为:

heihei……null

heihei……null

get:abc4

get:abc3

get:abc2

get:abc1

hahaabc4

hahaabc3

hahaabc2

hahaabc1

remove:abc4

remove:abc3

remove:abc2

remove:abc1

----------------------

[]

2.vector集合

import java.util.Enumeration;

import java.util.Iterator;

import java.util.Vector;

/*

Enumeration 此接口的功能与 Iterator 接口的功能是重复的

Iterator将Enumeration给替代了,

原因:Enumeration接口的方法名称过长。所以郁郁而终。

*/

public class VectorDemoAndEnumeration {

public static void main(String[] args) {

Vector v = new Vector();

v.addElement("abc1");

v.addElement("abc2");

v.addElement("abc3");

v.addElement("abc4");

for (int i = 0; i < v.size(); i++) {

System.out.println("通用获取方式:"+v.get(i));

}

//第二种取出方式

Enumeration en = v.elements();

while(en.hasMoreElements()){

System.out.println(en.nextElement());

}

System.out.println("----------------");

//第三种取出方式

Iterator it = v.iterator();

while(it.hasNext()){

System.out.println(it.next());

}

}

}

此类执行结果为:

/*通用获取方式:abc1

通用获取方式:abc2

通用获取方式:abc3

通用获取方式:abc4

abc1

abc2

abc3

abc4

----------------

abc1

abc2

abc3

abc4*/

java list子类_List集合的子类ArrayList、LinkedList、Vector相关推荐

  1. ArrayList,LinkedList,Vector的异同点

    先总结下ArrayList和LinkedList的区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构. 2.对于随机访问get和set,ArrayLi ...

  2. ArrayList, LinkedList, Vector - dudu:史上最详解

    ArrayList, LinkedList, Vector - dudu:史上最详解 我们来比较一下ArrayList, LinkedLIst和Vector它们之间的区别.BZ的JDK版本是1.7.0 ...

  3. ArrayList ,LinkedList,Vector,StringBuilder,StringBuffer ,String,HashMap,LinkedHashMap,TreeMap

    ArrayList ,LinkedList,Vector 区别和联系 从上面的类层次结构图中,我们可以发现他们都实现了List接口,它们使用起来非常相似.区别主要在于它们各自的实现,不同的实现导致了不 ...

  4. Java中的Map集合及其子类HashMap,LinkedHashMap,TreeMap,ConcurrentHashMap

    一 .Map public interface Map<K,V> 将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值.此接口哦取代了Dictionary类,后者完全是 ...

  5. java复杂判断_List集合多个复杂字段判断去重的案例

    List去重复,我们首先想到的可能是 利用List转Set集合,因为Set集合不允许重复.所以达到这个目的. 如果集合里面是简单对象,例如Integer.String等等,这种可以使用这样的方式去重复 ...

  6. Java-杂项:Java数组Array和集合List、Set、Map

    ylbtech-Java-杂项:Java数组Array和集合List.Set.Map 1.返回顶部 1. 之前一直分不清楚java中的array,list.同时对set,map,list的用法彻底迷糊 ...

  7. Java复习十:集合的使用

    Collection集合 collection接口的常用方法 package com.xiazhui.java1;import org.junit.jupiter.api.Test;import ja ...

  8. 【JAVA知识梳理】集合总结!

    活动地址:CSDN21天学习挑战赛 本文已收录于专栏 ⭐️ <java 知识梳理>⭐️ 集合 集合体系图 单列集合: Collection 的子接口下的 List 和 Set 的实现子类均 ...

  9. 明翰Java教学系列之集合框架篇V0.2(持续更新)

    文章目录 传送门 前言 什么是集合框架 集合框架体系 Collection接口 `Set接口` `HashSet` LinkedHashSet TreeSet EnumSet Queue接口 Prio ...

最新文章

  1. CxImage图像处理类库
  2. forms身份验证 不跳转_“东湖24小时”玩不够?收好这份指南,365天不重样
  3. mysql 主从 网络异常_mysql主从常见异常问题解决
  4. Nginx在开发中常用的基础命令
  5. SAP和CRM相关的标准教材,学通了这些,就算是CRM专家了
  6. vue 中slot 的具体用法
  7. linux磁盘调度算法
  8. get url img
  9. 在Linux中使用matplotlib进行科学画图
  10. oracle时间类型
  11. h5故障代码_H5故障与内机有关?
  12. ubuntu21.04美化使用
  13. ZedGraph类库之基本教程篇
  14. 【HAVENT原创】Salesforce 给字段加上链接
  15. uniapp 小程序支付功能
  16. 方法(Method)
  17. 小菜鸟szx的测试博文
  18. SQLZOO附加题练习 - Window functions
  19. 揭迷网络达人另类赚钱秘笈
  20. http响应头和请求头配置对照表

热门文章

  1. platform_device与platform_driver
  2. NA-NP-IE系列实验13:使用子网地址
  3. Android Activity跳转动画,让你的APP瞬间绚丽起来
  4. Axis,axis2,Xfire以及cxf对比 (转)
  5. PHP 提高PHP性能的编码技巧以及性能优化
  6. (How to)Windows Live Writer插入Latex公式
  7. 实例讲解《Microsoft AJAX Library》(2):DomEvent类
  8. SQL server 2005服务器备份文件的强制还原后引起的孤立用户问题解决方法
  9. java求面积Shape类_Shape-2,形状类,正方形类,长方形类,圆类,求周长面积
  10. Linux下查看CPU/内存/硬盘的shell命令