在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。

List接口特点:

  1. 它是一个元素存取有序的集合。例如,存元素的顺序是11、22、33。那么集合中,元素的存储就是按照11、22、33的顺序完成的)。

  2. 它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)。

  3. 集合中可以有重复的元素,通过元素的equals方法,来比较是否为重复的元素。

List接口中常用方法

List作为Collection集合的子接口,不但继承了Collection接口中的全部方法,而且还增加了一些根据元素索引来操作集合的特有方法,如下:

  1、public void add(int index, E element) : 将指定的元素,添加到该集合中的指定位置上(原来该位置及后面的元素都往后移动一位)

  2、public E get(int index) :返回集合中指定位置的元素。

  3、public E remove(int index) : 移除列表中指定位置的元素, 返回的是被移除的元素。

  4、public E set(int index, E element) :用指定元素替换集合中指定位置的元素,返回值的更新前的元素。

示例:

public class demo1 {
    public static void main(String[] args) {
        // 创建List集合对象
        List<String> list = new ArrayList<String>();
        // 往 尾部添加 指定元素
        list.add("图图");
        list.add("小美");
        list.add("不高兴");
        System.out.println(list);
        // add(int index,String s)往指定位置添加
        list.add(1,"没头脑");
        System.out.println(list);
        // String remove(int index) 删除指定位置元素 返回被删除元素
        // 删除索引位置为2的元素
        System.out.println("删除索引位置为2的元素");
        System.out.println(list.remove(2));
        System.out.println(list);
        // String set(int index,String s)
        // 在指定位置 进行 元素替代(改)
        // 修改指定位置元素
        list.set(0, "三毛");
        System.out.println(list);
        // String get(int index) 获取指定位置元素
        // 跟size() 方法一起用 来 遍历的
        for(int i = 0;i<list.size();i++){
            System.out.println(list.get(i));
        }
        //还可以使用增强for
        for (String string : list) {
            System.out.println(string);
        }
    }
}

结果:

 Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合。方法如下:

- public boolean add(E e):  把给定的对象添加到当前集合中 。
- public void clear() :清空集合中所有的元素- public boolean remove(E e): 把给定的对象在当前集合中删除。(常用)
- public boolean contains(E e): 判断当前集合中是否包含给定的对象。
- public boolean isEmpty(): 判断当前集合是否为空。
- public int size(): 返回集合中元素的个数。
- public Object[] toArray(): 把集合中的元素,存储到数组中。

方法演示:

public class Demo1Collection {
    public static void main(String[] args) {
        // 创建集合对象 
        // 使用多态形式
        Collection<String> coll = new ArrayList<String>();
        // 使用方法
        // 添加功能  boolean  add(String s)
        coll.add("小李广");
        coll.add("扫地僧");
        coll.add("石破天");
        System.out.println(coll);

        // boolean contains(E e) 判断o是否在集合中存在
        System.out.println("判断  扫地僧 是否在集合中"+coll.contains("扫地僧"));

        //boolean remove(E e) 删除在集合中的o元素
        System.out.println("删除石破天:"+coll.remove("石破天"));
        System.out.println("操作之后集合中元素:"+coll);
        
        // size() 集合中有几个元素
        System.out.println("集合中有"+coll.size()+"个元素");

        // Object[] toArray()转换成一个Object数组
        Object[] objects = coll.toArray();
        // 遍历数组
        for (int i = 0; i < objects.length; i++) {
            System.out.println(objects[i]);
        }

        // void  clear() 清空集合
        coll.clear();
        System.out.println("集合中内容为:"+coll);
        // boolean  isEmpty()  判断是否为空
        System.out.println(coll.isEmpty());      
    }
}

集合的加减操作的方法

boolean removeAll(Collection<?> c);
boolean addAll(Collection<? extends E> c);

例子

1、对原List本身有改变的方法即:List1.addAll(List2) // List1与List2两个集合进行相加,返回一个boolean类型值,原有的List1值有变化,List2不变;List1.removeAll(List2) //List1与List2两个值进行相减,返回一个boolean类型值,原有的List1值有变化,List2不变;
加法:

List list1 = new ArrayList();
list1.add("1");
list1.add("3");
list1.add("5");
List list2 = new ArrayList();
list2.add("2");
list2.add("4");
list2.add("5");
list1.addAll(list2);
System.out.println(list1); //输出结果为:[1, 3, 5, 2, 4, 5]

减法

List list1 = new ArrayList();
list1.add("1");
list1.add("3");
list1.add("5");
List list2 = new ArrayList();
list2.add("2");
list2.add("4");
list2.add("5");
list1.removeAll(list2);
System.out.println(list1); //输出结果为:[1, 3]

2、对原本List无改变的方法即:ListUtils.union(List1,List2) //List1与List2相加,返回的是一个List集合,原有的List1与List2都没有改变;ListUtils.subtract(List1,List2)//List1与List2相减,返回的是一个List集合,原有的List1与List2都没有改变

加法:

import org.apache.commons.collections.ListUtils;
import java.util.ArrayList;
import java.util.List;

public class demo1 {
    public static void main(String[] args) {
        List list1 = new ArrayList();
        list1.add("1");
        list1.add("3");
        list1.add("5");
        List list2 = new ArrayList();
        list2.add("2");
        list2.add("4");
        list2.add("5");
        List list = ListUtils.union(list1,list2);
        System.out.println(list); 
        System.out.println(list1);
    }
}

结果:

[1, 3, 5, 2, 4, 5]
[1, 3, 5]

减法:

import org.apache.commons.collections.ListUtils;
import java.util.ArrayList;
import java.util.List;

public class demo1 {
    public static void main(String[] args) {
        List list1 = new ArrayList();
        list1.add("1");
        list1.add("3");
        list1.add("5");
        List list2 = new ArrayList();
        list2.add("2");
        list2.add("4");
        list2.add("5");
        List list = ListUtils.subtract(list1,list2);
        System.out.println(list);
        System.out.println(list1);
    }
}

结果:

[1, 3]
[1, 3, 5]

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2021-06-16 17:42  周文豪  阅读(85)  评论(0编辑  收藏  举报