java集合之List和Iterator

List:

List接口是Collection的一个子接口,List内部包含Collection接口中的所有方法,除此之外也与属于自己特有的方法。
List接口的特点:有序(存储和取出元素的顺数一致)、可重复(可以存储重复的元素)、有索引值。

  • 正是因为List有索引,所有有一些自己独特的方法:
    void add(int index,Object obj)//向结合index的位置添加一个obj元素
    get(int index) //获取index位置的元素
    set(int index,Object obj) //修改集合中index位置的值为obj
    remove(int index) // 删除index位置的元素
    int indexOf(Object obj) //获取obj元素在集合中所在的第一个位置
    List subList(int fIndex,int eIndex) //获取集合中截取一个从findex到eIndex-1的新的集合

  • List接口的实现类
    ArrayList: 底层使用一个数组来保存元素,增删的时候会建立新的数组,其增删的效率低。
    LinkedList:底层使用链表的存储方式,增删的效率高。


Iterator(迭代器)

  • Iterator迭代器,用来遍历出集合中的所有元素。它就类似一个指针,其实位置是集合的第一个元素的前面。
  • Iterator的两个重要方法:hasNext()、next()
    hasNext()判断集合是否有下一个值,有的话就将指针向后移一位。
    next()是用来取出下一个值,一般为hasNext()判断是否有下一个值,有的话就使用next()将这个值取出来。
public class TestList {
    public static void main(String[] args) {
        List<String> list01 = new ArrayList();
        list01.add("AA");
        list01.add("BB");
        list01.add("CC");
        list01.add("DD");
        list01.add("DD");//list里面的元素可以重复
        System.out.println(list01);

        //测试带有索引的增加,在第一个位置增加一个元素
        list01.add(0,"aa");
        System.out.println(list01);

        //测试带set方法,修改索引值为2的元素为“bb”
        list01.set(2,"bb");
        System.out.println(list01);

        //测试get方法,获取索引值为3的元素
        System.out.println(list01.get(3));

        //测试remove方法,移除索引值为1 的元素
        list01.remove(1);
        System.out.println(list01);

        //测试indexOf,获取DD所在位置
        int loc = list01.indexOf("DD");
        System.out.println(loc);//获取的为第一个DD所在的位置

        //List subList(int fIndex,int eIndex)
        System.out.println("截取的集合:"+list01.subList(2,4));

        //遍历list,有三种方法:Iterator,增强for,for
        //方法一:Iterator方法遍历
        Iterator<String> it = list01.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }
        System.out.println("--------------------");
        //增强for
        for(String s :list01){
            System.out.println(s);
        }
        System.out.println("--------------------");
        //因为list有索引,所以可以使用for
        for(int i = 0;i<list01.size();i++){//在集合中获取集合的长度使用size方法,数组使用length方法
            System.out.println(list01.get(i));
        }
    }
}

如有错误,希望大家帮忙改正,康桑阿米达~
2019年8月9日上午的学习笔记。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值