List子接口

文章通过Java代码展示了List接口的特点,如有序、可重复,并使用ArrayList实现类进行了操作,包括添加元素、打印、遍历(for循环、foreach、迭代器、ListIterator)、删除、判断元素存在以及使用subList截取列表。还特别提到了ListIterator可以从后往前遍历列表。
摘要由CSDN通过智能技术生成

概念

  • List子接口就是Collection的接口,所以他也就需要实现类
  • 特点:有序 有下标 元素可以重复

代码

package List;

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

/**
 * list子接口特点:1.有序,有下标 2.可以重复获取
 */

public class Test1 {
    public static void main(String[] args) {
        //创建list接口,同样使用ArrayList实现类
        List list = new ArrayList();
        list.add("苹果");
        list.add("小米");
        list.add(0,"华为");
        System.out.println(list.size());
        System.out.println(list);

        //删除
//        list.remove(0);
//        System.out.println(list.size());

        //遍历 1.使用for循环,用get方法来获取对应下标
        System.out.println("---------使用for循环-------------------");
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        //2.foreach循环
        System.out.println("----------使用foreach循环--------------");
        for (Object o : list) {
            System.out.println(o);
        }

        //3.使用普通迭代器  iterator
        System.out.println("-------------使用普通迭代器 iterator-------------");
        Iterator iterator = list.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }

        //4.使用ListIterator,这个迭代器可以从后往前遍历,也可以从前往后遍历
        System.out.println("---------使用ListIterator从前往后-------------");
        ListIterator listIterator = list.listIterator();
        while(listIterator.hasNext()){
            System.out.println(listIterator.next());
        }
        //这里注意:其实使用一个像指针一样的东西在判断是否有前一个或者下一个,但是一开始指针是在第一个的,想要让指针
        //从后往前判断的话,只能先用next方法先让指针来到最后一个,在进行previous判断
        System.out.println("---------使用ListIterator从后往前-------------");
        while(listIterator.hasPrevious()){
            System.out.println(listIterator.previous());
        }

        //判断
        System.out.println(list.contains("小米"));
        System.out.println(list.contains("红米"));

        System.out.println(list.isEmpty());
    }
}
  • 注意:List接口里面提供了一个ListIterator的新迭代器,这个迭代器比普通的iterator功能更加强大,可以从后往前遍历,只不过就需要next让指针到最后一个

数字代码

package List;

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

public class Test2 {
    public static void main(String[] args) {
        //数字类型
        List list = new ArrayList();
        list.add(20);
        list.add(30);
        list.add(40);
        list.add(50);
        list.add(60);
        System.out.println(list.size());
        System.out.println(list);

        //remove方法
        //list.remove(0);
        //如果使用Integer的话,其实就是比较值
        list.remove(new Integer(30));
        list.remove((Object) 20);

        System.out.println(list.size());

        //subList:含头不含尾 0到2之间只有0和1
        System.out.println(list.subList(0,2));

    }
}
  • 这里的话,用remove方法最简单的就是通过下标访问,因为说他是添加数字,其实也不可以做什么运算的啦,如果你想通过值比较,可以强转成Object类型或者实例化Integer来比较,因为在源代码里,他们比较的是值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值