Collection集合体系的特点:

  set系列集合:添加的元素是 无序,不重复,无索引的

  ----HashSet: 无序,不重复,无索引

  ----LinkedHashSet: 有序,不重复,无索引

  List系列集合:添加的元素是 有序,可重复,有索引的

  ----LinkedList: 有序,可重复,有索引的

  ----ArrayList : 有序,可重复,有索引

    ----Vector:

Arraylist:存储是数组结构,元素增删慢,查找快,线程不安全,效率高

- `public void add(int index, E element)`: 将指定的元素,添加到该集合中的指定位置上。 (在索引前面插入)
- `public E get(int index)`:返回集合中指定位置的元素。
- `public E remove(int index)`: 移除列表中指定位置的元素, 返回的是被移除的元素。
- `public E set(int index, E element)`:用指定元素替换集合中指定位置的元素,返回值的更新前的元素。

import java.util.ArrayList;
import java.util.List; public class ListDemo1 {
public static void main(String[] args) {
List<String> lists=new ArrayList<>();//Arraylist几乎没有增加功能,所以用多态
lists.add("sfdsfd");
lists.add("zyl" );
lists.add("yuyu");
lists.add("huwof");
System.out.println(lists);// [sfdsfd, zyl, yuyu, huwof]
lists.add(1,"yyyy");
System.out.println(lists);// [sfdsfd, yyyy, zyl, yuyu, huwof]
System.out.println(lists.get(2));// zyl
System.out.println(lists.remove(3));// yuyu
System.out.println(lists);// [sfdsfd, yyyy, zyl, huwof]
lists.set(0,"ppppp");
System.out.println(lists);// [ppppp, yyyy, zyl, huwof] }
}

LinkedList:存储的结构是链表结构(双向链表),方便元素添加、删除,线程不安全,效率高

- `public void addFirst(E e)`:将指定元素插入此列表的开头。
- `public void addLast(E e)`:将指定元素添加到此列表的结尾。
- `public E getFirst()`:返回此列表的第一个元素。
- `public E getLast()`:返回此列表的最后一个元素。
- `public E removeFirst()`:移除并返回此列表的第一个元素。
- `public E removeLast()`:移除并返回此列表的最后一个元素。
- `public E pop()`:从此列表所表示的堆栈处弹出一个元素。
- `public void push(E e)`:将元素推入此列表所表示的堆栈。
- `public boolean isEmpty()`:如果列表不包含元素,则返回true。

import java.util.LinkedList;

public class LinkedListDemo1 {
public static void main(String[] args) {
LinkedList<String> stack = new LinkedList<>();
stack.addFirst("aaaa");
stack.addFirst("bbbb");
stack.addFirst("cccc");
System.out.println(stack); //[cccc, bbbb, aaaa]
stack.add("dddd");
System.out.println(stack); //[cccc, bbbb, aaaa, dddd]
System.out.println(stack.remove("bbbb")); //true
System.out.println(stack.getFirst()); //cccc LinkedList<String> stack1 = new LinkedList<>();
stack1.push("111"); //stack.push() --> stack.getFirst()
stack1.push("222");
stack1.push("333");
System.out.println(stack1); // [333, 222, 111]
System.out.println(stack1.pop()); //333 stack.pop() -->stack.removeFirst()
System.out.println(stack1); // [222, 111] }
}

Vector:底层是数组,查询快,增添慢,线程安全,效率低

Vector的特有功能:
        1、添加功能:
            void addElement(Object obj) 将指定的组件添加到此向量的末尾,将其大小增加1。
        2、获取功能:
            Object elementAt(int index) 返回指定索引处的元素  --get()
            Enumeration elements() 返回此向量的组件的容器。--list.iterator()
                boolean hasMoreElements() 测试此容器是否包含更多元素。 --hasNext()
                E nextElement() 如果此容器对象至少有一个要提供的元素,则返回此容器的下一个元素。 --next()

import java.util.Enumeration;
import java.util.Vector; public class VectorDemo1 {
public static void main(String[] args) {
Vector v=new Vector();
v.addElement(1111);
v.addElement(2222);
v.addElement(3333);
System.out.println(v); // [1111, 2222, 3333]
System.out.println(v.elementAt(1)); // 2222 Enumeration e = v.elements();
while (e.hasMoreElements()){
System.out.println(e.nextElement()); //1111
//2222
//3333
}
}
}

集合Collection ----List集合的更多相关文章

  1. 集合Collection ----Set集合

    set系列集合:添加的元素是 无序,不重复,无索引的 ----HashSet: 无序,不重复,无索引 ------LinkHashSet<>:有序不重复无索引(添加顺序) ----Tree ...

  2. Guava库介绍之集合(Collection)相关的API

    作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 本文是我写的Google开源的Java编程库Guava系列之一,主要介 ...

  3. 集合Collection

    /* * 集合的由来: * 我们学习的是面向对象语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们就必须把这多个对象进行存储. * 而要想存储多个对象,就不能是一个基本 ...

  4. 【再探backbone 02】集合-Collection

    前言 昨天我们一起学习了backbone的model,我个人对backbone的熟悉程度提高了,但是也发现一个严重的问题!!! 我平时压根没有用到model这块的东西,事实上我只用到了view,所以昨 ...

  5. 5、数组和集合--Collection、Map

    一.数组:同一个类型数据的集合,其实他也是一个容器 1.数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些数据 2.数组的定义: 在Java中常见: 格式1:  类型 [] 数组名 = ne ...

  6. java集合——Collection接口

    Collection是Set,List接口的父类接口,用于存储集合类型的数据. 2.方法 int size():返回集合的长度 void clear():清除集合里的所有元素,将集合长度变为0 Ite ...

  7. WCF分布式开发步步为赢(8):使用数据集(DataSet)、数据表(DataTable)、集合(Collection)传递数据

    数据集(DataSet).数据表(DataTable).集合(Collection)概念是.NET FrameWork里提供数据类型,在应用程序编程过程中会经常使用其来作为数据的载体,属于ADO.NE ...

  8. 在含有null值的复杂类的集合(Collection)中取最大值

    在日常编程中,经常遇到要在一组复杂类的集合(Collection)中做比较.取最大值或最小值. 举个最简单的例子,我们要在一个如下结构的集合中选取包含最大值的元素: public class Clas ...

  9. 集合Collection总览

    前言 声明,本文使用的是JDK1.8 从今天开始正式去学习Java基础中最重要的东西--->集合 无论在开发中,在面试中这个知识点都是非常非常重要的,因此,我在此花费的时间也是很多,得参阅挺多的 ...

随机推荐

  1. git的基本操作命令与基础

    本文针对window用户进行git操作 1.git是分布式版本控制系统,需要用户名和邮箱作为一个标识.在任何文件夹中点击右键,选择Git Bash Here ,配置全局用户名和邮件或者局部用户名和邮件 ...

  2. netty系列之:自定义编码解码器

    目录 简介 自定义编码器 自定义解码器 添加编码解码器到pipeline 计算2的N次方 总结 简介 在之前的netty系列文章中,我们讲到了如何将对象或者String转换成为ByteBuf,通过使用 ...

  3. 连通图与Tarjan算法

    引言 Tarjan算法是一个基于深度优先搜索的处理树上连通性问题的算法,可以解决,割边,割点,双连通,强连通等问题. 首先要明白Tarjan算法,首先要知道它能解决的问题的定义. 连通图 无向图 由双 ...

  4. XV6学习笔记(1) : 启动与加载

    XV6学习笔记(1) 1. 启动与加载 首先我们先来分析pc的启动.其实这个都是老生常谈了,但是还是很重要的(也不知道面试官考不考这玩意), 1. 启动的第一件事-bios 首先启动的第一件事就是运行 ...

  5. 跟我一起写 Makefile(二)

    三.make是如何工作的 在默认的方式下,也就是我们只输入make命令.那么, 1.make会在当前目录下找名字叫"Makefile"或"makefile"的文 ...

  6. 使用脚本下载Gmail邮件附件

    以下脚本连接上我的Gmail帐号,将收件箱中2013年1月份的新语丝邮件的附件保存在当前目录的xys文件夹中. import imaplib import email import os dir_na ...

  7. 4、关于numpy.random.seed()的使用说明

    定义:seed( ) 用于指定随机数生成时所用算法开始的整数值,如果使用相同的seed( )值,则每次生成的随即数都相同,如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差 ...

  8. Linux 开机关机在线求助与指令输入

    由于那本书版本稍稍有点早,我就跳过学习第二章第三章了(分别是主机规划和虚拟机安装)下图为在自己电脑上安装好的redhat7 4.1 我们来登入 其中第一行是Linux发行商和发行版本(欸,我的这个怎么 ...

  9. 【笔记】numpy.array基础(3)

    numpy数组的合并与分割 合并操作 concatenate拼接,只能操作维数一样的数据 且并不局限于两个元素 对于二维数组来说,可以通过控制axis来控制是按照行还是按照列来进行拼接操作,默认为ax ...

  10. SpringBoot开发五-社区首页开发

    需求介绍-社区首页 根据之前的学习,我们一般都是先按照DAO->Service->Controller这个顺序去开发 分布实现: 开发社区首页,显示前十个帖子. 开发分页组件,分页显示所有 ...