java容器-List<E>

1.介绍

List<E>接口继承自Collection<E>,即在Collection<E>接口的基础上添加了一些用于随机访问的操作集合,并且提供了ListIterator<E>迭代器,使得调用者可以方便的双向访问List,对应的方法为listIterator()。

2.主要子类型

ArrayList<E>, LinkedList<E>, Vector<E>

3.主要添加方法

1) get(int index) : E

返回指定位置的元素

2) set(int index, E element) : E

设置指定位置的元素,并返回该位置原来的元素

3) add(int index, E element) :void 

将元素添加至指定位置(index),并将该位置原来的元素及其之后的元素顺序向后移动

4) listIterator() : ListIterator<E>

返回该容器上的双向迭代器

5) listIterator(int index) : ListIterator<E>

返回该容器中指向index位置的双向迭代器ListIterator<E>

6) IndexOf(Object o) : int

返回元素o在容器中第一次出现的位置索引

7) lastIndexOf(Object o) : int

返回元素o在容器中最后一次出现的位置索引

8) subList(int fromIndex, int toIndex) : List

   返回当前List的子List,从fromIndex到toindex,包含fromIndex位置的元素,不包括toIndex位置的元素,并且返回的子List和原List共享存储,因此在原List和子List里做的任何修改都能如实的反馈给对方。(该方法返回的实际类型为List具体实现类中的内部类类型SubList<E>,内部类可以很方便的共享外部类的数据)

 4.default方法-自jdk1.8

1) default replaceAll(UnaryOperator<E> operator) : void

该方法利用该容器上的Iterator,为容器中每个元素element执行operator.apply(element),由于apply方法返回的也是element的类型,因此紧接着调用iterator.set(Eelement)方法,即可实现全部替换 

2) default sort(Comparator<? super E> comparator) : void

该方法利用Comparator<? super E> 的int compare(E element1, E element2)方法来比较元素,再进行排序。内部实现为Collections.sort(this, comparator)

3)default splitorator() : Splitorator<E>

返回该容器上的Spliterator<E>,以被stream方法和parallel方法调用

5.总结

List<E>容器在Collection的基础上,提供了一系列的随机访问接口如get(int index),set(int index, E element),remove(int index)等,并提供了双向迭代器ListIterator和获取子List的subList(int fromIndex, int toIndex),也提供了获取指定元素的位置的indexOf(Object o)和lastIndexOf(Object o)方法,这些方法集合极大的方便了调用者对容器修改和获取,也提供了更多的使用容器的自由,使得调用者可以用多种方式来完成指定的操作。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
补全以下代码:package step3; /** * @author pengzheng */ import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.ArrayList; class Dog implements Comparable<Dog> { String name; int weight; public Dog(String name, int weight) { this.name = name; this.weight = weight; } @Override public String toString() { return this.name + "重" + this.weight + "公斤"; } @Override public int compareTo(Dog o) { return this.weight - o.weight; } } public class TestList { public static void main(String[] args) { List<Dog> list = [代码] //创建一个可以存放Dog对象的ArrayList类型的容器 Dog dog1 = new Dog("dog1", 30); Dog dog2 = new Dog("dog2", 20); Dog dog3 = new Dog("dog3", 10); // 使用boolean add(E e)方法,依次将dog1、dog2、dog3添加到list中 /********* begin *********/ [代码] /********* end *********/ System.out.println("使用增强型for循环遍历list:"); for ([代码]) { // 使用增强型for循环遍历list System.out.print(dog + "; "); } System.out.println("\n使用for循环遍历list:"); for (int i = 0; [代码]; i++) { //使用int size()方法获取list中的元素个数 Dog dog = [代码] // 使用E get(int index)方法获取list中下标为i的元素 System.out.print(dog + "; "); } [代码] //使用java.util.Collections类的sort方法对list中的元素进行排序 System.out.println("\n排序后,使用迭代器遍历list:"); Iterator<Dog> iterator = [代码] //使用iterator()方法,获取list中的迭代器 while ([代码]) { //使用Iterator的boolean hasNext()方法,判断是否存在另一个可访问的元素 Dog dog = [代码] // 使用Iterator的Object next()方法,返回要访问的下一个元素 System.out.print(dog + "; "); } } }
05-30

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值