• java集合(5)-List集合


    序章 

     List集合是一个元素有序且可以重复的集合,每个元素对应一个索引,类似于数组的方式,默认是按照添加顺序,所以第一次添加元素索引为0,第二次为1。。。。

    一 Java8改进的List接口和ListIterator接口

      List作为Collection接口的子接口,可以使用Collection接口的所有方法,同时由于为有序集合,所以增加了一些根据索引来操作集合元素的方法。

      新增方法如下:

      void add(int index,Object element):将元素element插入到List集合的index处。

      boolean addAll(int index,Collection c):将集合c所包含的所有元素插入到List集合的index处。

           Object get(int index):返回集合index索引处的元素。

      int indexOf(Object o):返回对象o在List集合中第一次出现的位置信息。

      int  lastIndexOf(Object o):返回对象o在List集合中最后一次出现的位置索引。

      Object remove(int index):删除并返回index索引处的元素。

      Object set(int index,Object element):将index索引处的元素替换成element对象,返回被替换的旧元素。

      List subList(int fromIndex,int toIndex):返回从索引fromIndex(包含)到toIndex(不包含)处所有集合元素组成的子集合。

        所有List实现类都可以调用这些方法来操作集合元素。相比Set,List增加了根据索引来插入,替换和删除集合元素的方 法。除此之外,Java8还增加了如下两个默认方法

      void replaceAll(UnaryOperator operator):根据operator指定的计算规则重新设置List集合的所有元素。

      void sort(Comparatorc):根据Comparator参数对List集合的元素排序。

      代码示例

    package com.j1803.listTest;
    import java.util.ArrayList;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Set;
    public class ListTest {
        public static void main(String[] args) {
            List book=new ArrayList();
            Set set=new HashSet();
            set.add(78);
            set.add(new String("DDDD"));
            set.add("EEEE");
            set.add("BBBB");
            book.add(new String("AAAA"));
            book.add(new String("BBBB"));
            book.add(new String("CCCC"));
            //book.add(5,new String("DDDD"));报错java.lang.IndexOutOfBoundsException:     Index: 5, Size: 3
            book.add(3,new String("DDDD"));
            System.out.println(book);
            book.addAll(set);
            System.out.println(book);
            System.out.println(book.get(2));
            System.out.println(book.indexOf("CCCC"));
            System.out.println(book.indexOf("BBBB"));
            System.out.println(book.lastIndexOf("BBBB"));
            System.out.println(book.remove("BBBB"));
            System.out.println(book);
            System.out.println(book.remove(1));
            System.out.println(book);
            book.set(0, new String("Hello World"));
            System.out.println(book);
            System.out.println(book.subList(0, 3));
        }
    
    }
    [AAAA, BBBB, CCCC, DDDD]
    [AAAA, BBBB, CCCC, DDDD, EEEE, 78, DDDD, BBBB]
    CCCC
    2
    1
    7
    true
    [AAAA, CCCC, DDDD, EEEE, 78, DDDD, BBBB]
    CCCC
    [AAAA, DDDD, EEEE, 78, DDDD, BBBB]
    [Hello World, DDDD, EEEE, 78, DDDD, BBBB]
    [Hello World, DDDD, EEEE]
    
       

        List通过equals方法来判断两个对象是否相等。如果equals返回为true则相等,否则则不想等。

      代码示例

    package com.j1803.listTest;
    import java.util.ArrayList;
    import java.util.List;
    public class ListTest2 {
    	public static void main(String[] args) {
    		List list=new ArrayList();
    		list.add("AA");
    		list.add("BB");
    		list.add("CC");
    		System.out.println(list);
    		list.remove(new A());
    		System.out.println(list);
    		list.remove(new A());
    		System.out.println(list);
    	}
    }
    class A{
    	public boolean equals(Object obj) {
    		return true;
    	}
    }
    [AA, BB, CC]
    [BB, CC]
    [CC]
    

      

      

      

  • 相关阅读:
    BZOJ4223 : Tourists
    BZOJ3565 : [SHOI2014]超能粒子炮
    BZOJ3499 : PA2009 Quasi-template
    BZOJ3490 : Pa2011 Laser Pool
    BZOJ2828 : 火柴游戏
    BZOJ3070 : [Pa2011]Prime prime power 质数的质数次方
    BZOJ2138 : stone
    BZOJ2167 : 公交车站
    BZOJ1290 : [Ctsc2009]序列变换
    Ural2110 : Remove or Maximize
  • 原文地址:https://www.cnblogs.com/shadow-shine/p/9847012.html
Copyright © 2020-2023  润新知