List集合

List

List集合的特点有序、可重复、有索引。

List remove重载方法的细节

List的remove方法有两个

第一个方法按照值删除元素,第二个方法按照索引下标删除元素。

  • 案例一
  public static void main(String[] args) {
      List<Integer> integers = new ArrayList<Integer>();
      integers.add(1);
      integers.add(2);
      integers.add(3);
      integers.add(4);
      System.out.println(integers);
      integers.remove(1);
      System.out.println(integers);
  }

运行结果

[1, 2, 3, 4]
[1, 3, 4]
  • 案例二
  public static void main(String[] args) {
      List<Integer> integers = new ArrayList<Integer>();
      integers.add(1);
      integers.add(2);
      integers.add(3);
      integers.add(4);
      System.out.println(integers);
      integers.remove(Integer.valueOf(1));
      System.out.println(integers);
  }

运行结果

[1, 2, 3, 4]
[2, 3, 4]

结论:重载方法优先调用实参和形参一致的方法

List遍历
  List<String> str = new ArrayList<String>();
  str.add("aaa");
  str.add("bbb");
  str.add("ccc");
通用的三种方式
  • Iterator遍历,因为Collection是List的父类,Collectoin又实现了Iterator接口。
  List<String> str = new ArrayList<String>();
  str.add("aaa");
  str.add("bbb");
  str.add("ccc");
  • 增强for循环
  //增强for循环
  for (String s : str) {
      System.out.println(s);
  }
  • Lambda表达式(匿名内部类)
  //匿名内部类
  str.forEach(new Consumer<String>() {
      @Override
      public void accept(String s) {
          System.out.println(s);
      }
  });

  
  //Lambda表达式
  str.forEach(s->System.out.println(s) );

独有的两种方式
  • 普通for循环,因为List有下标索引
  //普通for循环
  for (int i = 0; i < str.size(); i++) {
      System.out.println(str.get(i));
  }
  • 列表迭代器
public interface ListIterator<E> extends Iterator<E> {...}
            //列表迭代器
            final ListIterator<String> listIterator = str.listIterator();
            while(listIterator.hasNext()){
                String s = listIterator.next();
                if("bbb".equals(s)){
                    //相比于Iterator,ListIterator可以直接添加元素
                    listIterator.add("ddd");
                }
            }
posted @ 2024-03-06 11:05  破忒头头  阅读(22)  评论(0)    收藏  举报