zoukankan      html  css  js  c++  java
  • Java——List

    一、概述

    List集合是Collection集合子类型,继承了Collection中所有的功能,比Collection约束更加详细、严谨。

    二、特点

    1. 元素具备索引【有索引】
    2. 元素可以重复存储(两个对象如果equals方法调用后返回true)【可重复】
    3. 元素的存取是有序的【有序】

    三、常用子类

    1. ArrayList:底层结构就是数组【查询快、增删慢】
    2. Vector:底层结构也是数组(线程安全、同步安全、低效、用的少)
    3. LinkedList:底层是链表结构(双向链表)【查询慢、增删快】

    四、常用方法

    List继承了Collection中所有方法,元素具备索引特性,因此新增了一些含有索引的特有方法。

    4.1、add

    public void add(int index, E element)
    

    将指定的元素,添加到该集合中的指定位置上。如果指定位置上已存在元素,则会把已存在元素向后移动一位。

    例子

    List<String> list = new LinkedList<>();
    list.add("hello");
    list.add("world");
    System.out.println(list);   // [hello, world]
    list.add(1, "hi");   // [hello, hi, world]

    4.2、get

    public E get(int index)
    

    返回集合中指定位置的元素

    例子

    List<String> list = new LinkedList<>();
    list.add("hello");
    list.add("world");
    System.out.println(list.get(0));   // hello

    4.3、remove

    public E remove(int index)
    

    移除列表中指定位置的元素,返回的是被移除的元素

    例子

    List<String> list = new LinkedList<>();
    list.add("hello");
    list.add("world");
    System.out.println(list);   // [hello, world]
    list.remove(0);
    System.out.println(list);   // [world]

    4.4、set

    public E set(int index, E element)
    

    用指定元素替换集合中指定位置的元素,返回值是更新前的元素。

    例子

    List<String> list = new LinkedList<>();
    list.add("hello");
    list.add("world");
    String str = list.set(0, "hi");
    System.out.println(str);   // hello
    System.out.println(list);   // [hi, world]
    

    4.5、size

    返回集合的大小

    例子

    List<String> list = new LinkedList<>();
    list.add("hello");
    list.add("world");
    System.out.println(list.size());   // 2
    

    4.6、isEmpty

    检查集合是否为空,空返回true、非空返回false

    例子

    List<String> list = new LinkedList<>();
    System.out.println(list.isEmpty());   // true
    list.add("hello");
    list.add("world");
    System.out.println(list.isEmpty());   // false
    

    4.7、contains

    检查集合是否包含指定元素,包含返回true、不包含返回false

    例子

    List<String> list = new LinkedList<>();
    list.add("hello");
    list.add("world");
    System.out.println(list.contains("hello"));   // true
    System.out.println(list.contains("hi"));   // false
    

    五、LinkedList

    5.1、介绍

    LinkedList底层结构是双向链表。每个节点有三个部分的数据,一个是保存元素数据,一个是保存前一个节点的地址,一个是保存后一个节点的地址。可以双向查询,效率会比单向链表高。如下是LinkedList的一些特有方法。

    5.2、addFirst、addLast

    // 将指定元素插入到此列表的开头
    public void addFirst(E e)
    
    // 将指定元素添加到此列表的结尾
    public void addLast(E e)
    

    例子

    LinkedList<String> list = new LinkedList<>();
    list.add("hello");
    list.add("world");
    System.out.println(list);   // [hello, world]
    list.addFirst("hi");
    list.addLast("nice");
    System.out.println(list);   // [hi, hello, world, nice]
    

    5.3、getFirst、getLast

    // 返回此列表的第一个元素
    public E getFirst()
    
    // 返回此列表的最后一个元素
    public E getLast()
    

    例子

    LinkedList<String> list = new LinkedList<>();
    list.add("hello");
    list.add("world");
    list.add("hi");
    list.add("nice");
    System.out.println(list);   // [hello, world, hi, nice]
    System.out.println(list.getFirst());   // hello
    System.out.println(list.getLast());   // nice
    

    5.4、removeFirst、removeLast

    // 移除并返回此列表的第一个元素
    public E removeFirst()
    
    // 移除并返回此列表的最后一个元素
    public E removeLast()
    

    例子

    LinkedList<String> list = new LinkedList<>();
    list.add("hello");
    list.add("world");
    list.add("hi");
    list.add("nice");
    System.out.println(list);   // [hello, world, hi, nice]
    String firstE = list.removeFirst();
    String lastE = list.removeLast();
    System.out.println(list);   // [hello, world, hi, nice]
    System.out.println(firstE);   // hello
    System.out.println(lastE);   // nice
    

    5.5、pop

    从此列表所表示的堆栈弹出一个元素(底层实现就是removeFirst)

    public E pop()
    

    例子

    LinkedList<String> list = new LinkedList<>();
    list.add("hello");
    list.add("world");
    list.add("hi");
    System.out.println(list);   // [hello, world, hi]
    String str = list.pop();
    System.out.println(str);   // hello
    System.out.println(list);   // [world, hi]

    5.5、push

    将元素推入此列表所表示的堆栈(底层就是addFirst)

    public void push(E e)
    

    例子

    LinkedList<String> list = new LinkedList<>();
    list.add("hello");
    list.add("world");
    System.out.println(list);   // [hello, world]
    list.push("hi");
    System.out.println(list);   // [hi, hello, world]
    

      

  • 相关阅读:
    [转]在自己的项目中调用别人的库的方法(static lib库,dynamic lib库以及dll动态库)
    前端、后台、客户端以及服务器
    C# 使用j
    C# Linq技术中SelectMany() 获取list对象的属性 汇总成为一个新的集合
    C# 集合的扩展方法-查询表达式GroupBy()的使用 转
    C# ASP.NET MVC中Filter过滤器的使用 通过注册到Global.asax注册为全局 过滤所有action
    C# ASP.NET MVC中有四种Filter 过滤器类型 通过标签 Attribute加到action上面
    C# 《Asp.Net Web Api 》-----路由机制 转
    C# ASP.NET MVC5路由系统机制详细讲解(转)
    MVC 自定义数据校验规则 Validation
  • 原文地址:https://www.cnblogs.com/xulinjun/p/14775878.html
Copyright © 2011-2022 走看看