List接口

1、有序的结合,存储和取出元素是一致的
2、有索引
3、允许存储重复元素
操作的时候注意索引越界异常,

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

public class ListDemo {
    public static void main(String[] args) {
        //List接口 继承了 collction 继承了 Iterable可迭代接口
        //列表里面的元素是可重复有索引的
        List<String> list = new ArrayList<>();//多态
        List<String> list2 = new ArrayList<>();
        list2.add("1");
        list2.add("2");
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("a");
        System.out.println(list);//[a, b, c, a]
        //add(int index, E element) 特有的方法 在列表指定位置插入执行元素,可选操作
        list.add(3,"d");
        System.out.println(list);//[a, b, c, d,a]
        list.addAll(list2);
        System.out.println(list);//[a, b, c, d,a,1,2]
        //   从此列表中移除第一次出现的指定元素(如果存在)(可选操作)。
        String returnValue = list.remove(3);
        System.out.println(returnValue);//d
        System.out.println(list);//[a, b, c, a, 1, 2]
        //set(int index, E element) 指定元素替换列表中指定位置的元素(可选操作)。
        list.set(3,"A");
        System.out.println(list);//[a, b, c, A, 1, 2]

        //循环list的方法有三种 迭代器,for,增强for
        //1.普通的for循环
        for (int i = 0; i <list.size() ; i++) {
            System.out.print(list.get(i));// abcA12
        }
        System.out.println("");
        //2.迭代器
        Iterator<String> it = list.iterator();
        while (it.hasNext()){
            System.out.print(it.next());// abcA12
        }
        System.out.println("");
        //3.增强的for循环
        for (String s : list) {
            System.out.print(s);//abcA12
        }
    }
}

List子类 :数组结构实现类 Arraylist<>集合查询快 增删慢 因为要(copy)慢 此实现不是同步的(多线程意外执行快)

LIst子类:链表结构实现类 LinkedList<>集合查询慢 增删快此实现不是同步的(多线程意外执行快)里面包含了大量操作首尾元素的方法,使用这个集合的特有方法 不能使用多态,因为多态看不到子类特有的方法

import java.util.LinkedList;
import java.util.List;

public class LinKedListDemo {
    public static void main(String[] args) {
        LinkedList<Integer> lKl = new LinkedList<>();
        lKl.add(1);
        lKl.add(2);
        lKl.add(3);
        lKl.add(4);
        System.out.println(lKl);//[1, 2, 3, 4]
        lKl.addFirst(100);
        System.out.print(lKl);//[100, 1, 2, 3, 4]
        System.out.println("");
        lKl.addLast(10000);//等效于add()
        System.out.print(lKl);//[100, 1, 2, 3, 4, 10000]
        System.out.println("");
        lKl.push(5);//等效于addFirst()
        System.out.print(lKl);//[5,100, 1, 2, 3, 4, 10000]
        System.out.println("");
        int first = lKl.getFirst();
        System.out.print(first);//5
        System.out.println("");
        int last = lKl.getLast();
        System.out.print(last);10000
        System.out.println("");
        lKl.clear();
        System.out.print(lKl);//[]
//        lKl.isEmpty() 如果列表中不含有元素则返回True
        if(!lKl.isEmpty()){
            lKl.getLast();
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值