List集合包括四种类,分别是ArrayList、LinkedList、Vector、Stack。

ArrayList:元素的存储是顺序存储,可以根据数组的下标查询,查询速度快,但是在删除和插入元素时将慢,需要移动大量的元素。

    public void Test1()
{
ArrayList arrayList=new ArrayList<>(); long startTime= System.currentTimeMillis();
arrayList.add(2);
arrayList.add(3);
arrayList.add("water");
arrayList.add("driver");
arrayList.add(999);
arrayList.add("angel"); arrayList.remove(0);
arrayList.remove(4); for (Object item : arrayList) {
System.out.println(item);
}
long endTime=System.currentTimeMillis();
System.out.println("运行时间为:"+(endTime-startTime)+"ms");
}

上述例子中我试着读出其运行时间进行比较,实在太快了。

LinkedList:元素在其中存储是随机存储,首先说明LinkedList是一个双向链表,通过pre,element,next,每个元素都是由这3部分组成,它的优点在于删除,插入时只需要断开和连接删除位置的指针即可,不需要大量的移动元素。

    public void Test2()
{
LinkedList linkedList=new LinkedList<>();
linkedList.add(888);
linkedList.add(999);
linkedList.add("blue");
linkedList.add("sky");
linkedList.add("waiter");
linkedList.add("grass");
linkedList.add(1314); linkedList.remove(1);
linkedList.remove(4); for (Object item : linkedList) {
System.out.println(item);
}
}

在这中间加一点迭代器的一些知识,既然是集合就会存在迭代的问题

public static void main(String[] args)
{
Collection c=new Vector<>();
for(int i=0;i<10;i++)
{
c.add(i);
} Iterator it=c.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}

在一个集合中,使用了iterator()方法,就返回了一个迭代器类型,hasNext()表示迭代器中是否还有元素,next()表示迭代器中的下一个元素。

当然上介绍的ArrayList和LinkedList集合类在多线程中都是不安全的,下面引入安全类Vector类:

public static void main(String[] args)
{
Collection c=new Vector<>();
for(int i=0;i<10;i++)
{
c.add(i);
} Iterator it=c.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}

java List集合的更多相关文章

  1. 【Java】集合_学习笔记

    一.集合 1.集合类也称容器类,主要负责保存.盛装其他数据. 2.集合可以保存数量不确定的数据,保存具有映射关系的数据(也称关联数组). 3.Java5后提供一些多线程安全的集合类,放在java.ut ...

  2. java的集合框架最全详解

    java的集合框架最全详解(图) 前言:数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作 ...

  3. 谈谈Java的集合组件

    让我们一起谈谈Java的集合组件 我们在使用Java的时候,都会遇到并使用到Java的集合.在这里通过自己的理解和网上的资源对Java的集合方面的使用做一个简单的讲解和总结. Java主要分为3个集合 ...

  4. java.util 集合框架集合

    java的集合框架为程序提供了一种处理对象组的标准方式.设计了一系列标准泛型接口: ⑴Collection ()接口,扩展了Iterable接口,位于集合层次结构的顶部,因此所有的集合都实现Colle ...

  5. Java基础——集合框架

    Java的集合框架是Java中很重要的一环,Java平台提供了一个全新的集合框架.“集合框架”主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型.Java平台的完整集合框架如下图所示: 上 ...

  6. Java学习-集合(转)

    在编写java程序中,我们最常用的除了八种基本数据类型,String对象外还有一个集合类,在我们的的程序中到处充斥着集合类的身影!java中集合大家族的成员实在是太丰富了,有常用的ArrayList. ...

  7. java的集合框架之一

    java是一套很成熟的东西,很多商用的东西都喜欢用它,用的人多,稳定.不过一般也不怎么说起它,因为太常见了,私下里说,写java应用层得就像农民工,每一处都是搭积木,根据设计师的东西如何优雅地搭好积木 ...

  8. 浅谈Java的集合框架

    浅谈Java的集合框架 一.    初识集合 重所周知,Java有四大集合框架群,Set.List.Queue和Map.四种集合的关注点不同,Set 关注事物的唯一性,List 关注事物的索引列表,Q ...

  9. Java之集合初探(一)

    一.集合概述.区别 集合是一种容器,数组也是一种容器 在Java编程中,装各种各样的对象(引用类型)的叫做容器. 为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的 ...

  10. Java面向对象 集合(下)

      Java面向对象 集合(下) 知识概要:               (1)Map集合的体系结构 (2)Map集合的方法 (3)HashMap TreeMap (4)集合框架中的常用工具类 ( ...

随机推荐

  1. 老男孩python学习自修第二十四天【多进程】

    1. 体验多进程的运行速度 #!/usr/bin/env python # _*_ coding:UTF-8 _*_ from multiprocessing import Pool import t ...

  2. Navicat软件安装

    Navicat_10.1.7永久注册码 NAVH-WK6A-DMVK-DKW3

  3. SpringBoot之通过yaml绑定注入数据

    依赖包: <!--配置文件注解提示包--> <dependency> <groupId>org.springframework.boot</groupId&g ...

  4. 实体类注解错误:Could not determine type for: java.util.List

    今天配置实体类注解时,出现以下错误: Caused by: org.hibernate.MappingException: Could not determine type for: java.uti ...

  5. word公式大小

    下面给出MathType与Word对应的字体关系,大家可以根据自己的实际需求,调整自己的公式大小.  MathType与Word对应的字体关系示例 以上给大家详细介绍了调整MathType公式字体大小 ...

  6. Membership 介绍

    ASP.NET成员资格为您提供了验证和存储用户凭据的内置方式.因此,ASP.NET成员可以帮助您管理网站中的用户身份验证.您可以使用ASP.NET表单身份验证使用ASP.NET成员身份,方法是使用AS ...

  7. Web API 2 自定义默认Identity Table Name

    One of the first issues you will likely encounter when getting started with ASP.NET Identity centers ...

  8. group by具有去重的功能

    group by具有去重的功能

  9. MySQL数据库安装配置

    1,下载MySQL 打开MySQL的官网www.mysql.com,发现有一个DOWNLOADS 点击它,进入到MySQL的下载页面,在页面的底部有一个MySQL Community Edition, ...

  10. linux系统版本大全

    Linux系统下载地址:http://www.jb51.net/LINUXjishu/239493.html linux系统教学视频:http://www.uplinux.com/shipin/lin ...