Java – 集合List

简介

List 是 Collection 下面的一个子接口,它提供了包含索引的操作方法。

 

List特有方法

add() 增加

在此集合中的指定位置插入指定的元素

void add(index, E ele)

代码实现

// 创建一个集合
  List<String> c = new ArrayList<>();

  c.add("aaa");
  c.add("bbb");
  c.add("ccc");
  c.add("ddd");
  c.add("eee");


  c.add(1,"qqq");
  System.out.println(c);
 // [aaa, qqq, bbb, ccc, ddd, eee]

 

原来索引上的元素会依次往后移

 

remove() 删除

删除指定索引处的元素,返回被删除的元素

E remove(int index)

代码实现

c.remove(1);

 

set() 修改

修改指定索引处的元素,返回被修改的元素

E set(int index , E ele)

代码实现

c.set(1,"asd");

 

get() 返回

返回指索引处的元素

E get(int index)

代码实现

c.get(1);

 

迭代器 Iterator

迭代器是集合专用的遍历方式

获取迭代器

Iterator<E> iterator()

返回迭代器对象,默认指向当前集合的0索引

Iterator常用方法

boolean hasNext()

判断当前位置是否有元素,有元素返回true,没有元素返回falses

E next()

获取当前位置的元素,并将迭代器对象移向下一个位置。

获取迭代器并遍历数据

// 创建一个集合
  List<String> c = new ArrayList<>();

  c.add("aaa");
  c.add("bbb");
  c.add("ccc");
  c.add("ddd");
  c.add("eee");

  // 创建迭代器并遍历
  Iterator<String> it = c.iterator();
  while (it.hasNext())
  {
      String str = it.next();
      System.out.println(str);
  }

迭代器注意:

1.当指针到达最后时依然调用 next() 方法会报错 NoSuchElementException 异常

2.迭代器遍历完毕,指针不会复位,如果想重新遍历需要重新获取新的迭代器

3.循环中只能用一次next() 否则容易出现 NoSuchElementException

4.迭代器遍历时,不能用集合的方法进行增加或者删除

如果我们实在要删除,那么可以用迭代器提供的 remove 方法进行删除

如果要添加,暂时没有办法。

 

列表迭代器ListIterator

获取一个列表迭代器

ListIterator<String> it = list.listIterator();

 实现方法

ListIterator 增加了可在遍历的时候增加成员,还可在遍历的过程中修改成员数据。

 void add(E e) 
    将指定的元素插入列表(可选操作)。 
 boolean hasNext() 
    以正向遍历列表时,如果列表迭代器有多个元素,则返回 true(换句话说,如果 next 返回一个元素而不是抛出异常,则返回 true)。 
 boolean hasPrevious() 
    如果以逆向遍历列表,列表迭代器有多个元素,则返回 true。 
 E next() 
    返回列表中的下一个元素。 
 int nextIndex() 
    返回对 next 的后续调用所返回元素的索引。 
 E previous() 
    返回列表中的前一个元素。 
 int previousIndex() 
    返回对 previous 的后续调用所返回元素的索引。 
 void remove() 
    从列表中移除由 next 或 previous 返回的最后一个元素(可选操作)。 
 void set(E e) 
    用指定元素替换 next 或 previous 返回的最后一个元素(可选操作)。 

 

增强for遍历

增强 for 的底层就是迭代器,为了简化迭代器的代码书写的

它是JDK5之后出现的,其内部原理就是一个 Iterator 迭代器

所有的单列集合和数组才能用增强 for 进行遍历

增强 for 格式

for (元素的数据类型 变量名:数组或者集合) {}

方法实现

// 创建一个集合 List<String> c = new ArrayList<>(); 
c.add("aaa"); 
c.add("bbb"); 
c.add("ccc"); 
c.add("ddd"); 
c.add("eee");

// 遍历增强,s 其实就是一个第三方变量,在循环的过程中依次表示集合中的每一个数据
for (String s:List) {
    sout(s);
}

IDEA中使用 list.for 即可弹出格式选项

注意:修改增强for中的变量,不会改变集合中原本的数据

Lambda表达式遍历

JDK8之后推出的Lambda表达式后,提供了一种更简单直接的遍历集合的方式

方法格式

结合 lambda 遍历集合

default void forEach(Consumer<? super T> action):

代码实现

我们先来看看使用匿名内部类的实现方法:

// 创建一个集合
  List<String> c = new ArrayList<>();

  c.add("aaa");
  c.add("bbb");
  c.add("ccc");
  c.add("ddd");
  c.add("eee");

c.forEach(new Consumer<String>() {
      @Override
      public void accept(String s) {
    // 这里传来的 s 即是 ArrayList 集合的每一个遍历成员
    System.out.println(s);
      }
  });

通过lambda可以简写成以下样式

// 创建一个集合
  List<String> c = new ArrayList<>();

  c.add("aaa");
  c.add("bbb");
  c.add("ccc");
  c.add("ddd");
  c.add("eee");


  c.forEach(s->System.out.println(s));

 

普通 for 遍历

for (int i = 0; i < c.size(); i++) {
      System.out.println(c.get(i));
  }

 

如果您喜欢本站,点击这儿不花一分钱捐赠本站

这些信息可能会帮助到你: 下载帮助 | 报毒说明 | 进站必看

修改版本安卓软件,加群提示为修改者自留,非本站信息,注意鉴别

THE END
分享
二维码
打赏
海报
Java – 集合List
简介 List 是 Collection 下面的一个子接口,它提供了包含索引的操作方法。   List特有方法 add() 增加 在此集合中的指定位置插入指定的元素 void add(index, E ele) 代码实现 // 创建一……
<<上一篇
下一篇>>