List接口的常用方法

一、List的认识

List是Collection的子接口

意味着Collection下面所有的方法  List都是可以使用的,并且还有自己的方法,List比Collection 方法多

List接口存储数据的有什么特点:

​		有序的可重复的、

​			有序:添加顺序和保存顺序一致。取数据的时候,通过for循环的索引下标

​			可重复的:元素可以是相同的

二、List的常用方法

增:

add(int index,E e):指定下标添加指定的元素
addAll(Collection <? extends E> c):添加一个指定的集合,尾插法
addAll(int index,Collection<?extends E> c:在指定位置添加指定的一个集合)

删:

remove(int index);删除指定下标上的元素
remove(Object o):删除指定元素

改:

E set(int index, E e);依据指定的下标,替换指定下标元素

查:

E get(int index);获取指定下标的元素
int indexOf(Object obj);查找指定元素在指定下标的位置
List<E> subList(int startIndex, int  endIndex);获取子List集合(要头不要尾)

示例

import java.util.ArrayList;
import java.util.List;

/**
 * @author xue_yun_xiang
 * @create 2021-03-15-16:57
 */
public class Demo3 {
    
    
    public static void main(String[] args) {
    
    

        List<String> list = new ArrayList<>();
        list.add("一哈");
        list.add("二哈");
        list.add("三哈");
        list.add("四哈");
        list.add("五哈");
        System.out.println(list);//[一哈, 二哈, 三哈, 四哈, 五哈]

        //add(int index , E e)
        list.add(2,"金毛");
        System.out.println(list);//[一哈, 二哈, 金毛, 三哈, 四哈, 五哈]

        ArrayList<String> list2 = new ArrayList<>();
        list2.add("大黄");
        list2.add("中黄");
        list2.add("小黄");
        System.out.println(list2);//[大黄, 中黄, 小黄]

        //addAll(Collection <? extends E> c)
        //list.addAll(list2);
        //System.out.println(list);//[一哈, 二哈, 金毛, 三哈, 四哈, 五哈, 大黄, 中黄, 小黄]

        //addAll(int index, Collection <? extends E> c)
        list.addAll(1,list2);
        System.out.println(list);//[一哈, 大黄, 中黄, 小黄, 二哈, 金毛, 三哈, 四哈, 五哈]

        //remove(int index)
        list.remove(0);
        System.out.println(list);//[大黄, 中黄, 小黄, 二哈, 金毛, 三哈, 四哈, 五哈]
        //remove(Object o)
        list.remove("大黄");
        System.out.println(list);//[中黄, 小黄, 二哈, 金毛, 三哈, 四哈, 五哈]

        //E set(int index, E e)
        list.set(0,"中华田园犬");
        System.out.println(list);//[中华田园犬, 小黄, 二哈, 金毛, 三哈, 四哈, 五哈]

        //E get(int index)
        System.out.println(list.get(0));//中华田园犬

        //int indexOf(Object obj)
        System.out.println(list.indexOf("中华田园犬"));//0

        //List<E> subList(int startIndex, int  endIndex):(摇头不要尾)
        List<String> list1 = list.subList(1, 3);
        System.out.println(list1);//[小黄, 二哈]
    }
}

三、迭代器

ListIterator< E > listlterator();
常用的方法:
	boolean hasNext();
	E next();
	void remove();迭代器循环里不能使用对象移除数据,只能使用迭代器移除!!!!!!
	void add(E e):在当前迭代器中添加数据。注意是根据迭代器的指针指向进行添加的
	void set(E e);修改当前迭代器指向位置的那个元素

示例:

import java.util.ArrayList;
import java.util.ListIterator;

/**
 * @author xue_yun_xiang
 * @create 2021-03-15-17:43
 */
public class Demo4 {
    
    
    public static void main(String[] args) {
    
    
        ArrayList<String> list1 = new ArrayList<>();
        list1.add("红旗渠");
        list1.add("荷花");
        list1.add("利群");
        list1.add("散花");
        list1.add("华子");
        ListIterator<String> listIterator = list1.listIterator();
        System.out.println(listIterator.hasNext());//true
        System.out.println(listIterator.next());//红旗渠
        System.out.println(listIterator.nextIndex());//1    迭代器指向的以一个元素的索引
        list1.add("牡丹");//尾插法
        System.out.println(list1);//[红旗渠, 荷花, 利群, 散花, 华子, 牡丹]
    }

猜你喜欢

转载自blog.csdn.net/xue_yun_xiang/article/details/114842027