Java学习笔记之List<E>集合

本文详细介绍了Java中List接口的重要特性和常用方法,包括add、remove、containsAll、addAll、removeAll、retainAll等操作,以及相关注意事项和异常处理。通过实例展示了List集合的元素插入、删除、查找等操作,帮助理解List接口在实际编程中的应用。
摘要由CSDN通过智能技术生成

List是一个有序集合接口,实现该接口,可以精确控制列表中每个元素的插入位置,可以通过整数索引访问元素,并搜索列表中的元素。List允许重复,如果不允许重复,建议使用Set集合。

包含的特殊方法:

  1. int size(); 返回集合中的元素的数量,集合数量上限为Integer.MAX_VALUE
  2. boolean isEmpty(); 如果列表中没有元素,返回true
  3. boolean contains(Object o); 如果集合中包含o元素,返回true。规定A:如果指定元素的类型与此集合不兼容,则抛出异常ClassCastException。规定B:如果此集合不允许null元素,并且指定的元素为null,则抛出异常NullPointerException
  4. Iterator iterator();返回一个迭代器,该迭代器管理此集合中的元素。
  5. Object[] toArray();返回包含此列表中所有元素的数组。规定A:返回的数组需要重新分配一个新的数组,使返回的数组足够安全,后续操作不受当前集合影响。
  6. T[] toArray(T[] a);功能如同Object[] toArray(),规定A:如果指定数组的类型和集合中的元素类型不匹配,则抛出ArrayStoreException。规定B:如果指定的数组为null,则抛出NullPointerException。
    List<String> linkedList = new LinkedList<>(arrayList);
    for(int i =0;i<100;i++) linkedList.add("qqq");
    String[] y = linkedList.toArray(null);
    Log.w("打印"," "+y.length);
    
    以上代码不会走Log,直接抛出NullPointerException。
  7. boolean add(E e);将指定的元素追加到集合末尾。规定A:如果对添加类型有限制,请在文档写明。规定B:如果集合不支持add操作,抛出UnsupportedOperationException。规定C:如果指定元素类型不匹配,抛出ClassCastException。规定D:如果指定元素为null,并且本集合不允许null,抛出NullPointerException。规定E:如果元素中某些元素不匹配,抛出IllegalArgumentException。
  8. boolean remove(Object o);删除匹配到的第一个(或者多个,由实现类决定)如果匹配到,返回true,否则返回false。如果没有匹配到,不会更改。规定A:如果指定类型不匹配,抛出ClassCastException。规定B:如果指定元素为null并且本集合不允许null元素,抛出NullPointerException。规定C:如果本集合不支持remove操作,抛出UnsupportedOperationException。
  9. boolean containsAll(Collection<?> c);如果本集合包含指定集合中所有元素,返回true,否则返回false。规定A:如果指定集合中有元素和本集合中元素类型不匹配,抛出ClassCastException。规定B:如果指定集合中有元素为null,并且本集合不允许null元素,抛出NullPointerException。
    List<String> arrayList = new ArrayList<>();
    for(int i =0;i<50;i++){
         
        arrayList.add("aaa"+i);
    }
    arrayList.add("aaa"+49
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值