java入门 -- List接口使用详解(含迭代器)

import java.util.ArrayList;

import java.util.Collection;

import java.util.Iterator;

import java.util.List;

import java.util.ListIterator;

/*

* 集合体系:

* Collection

* ----| List 如果实现了List接口的集合类,该类有序可重复:

* ----| Set 事项了Set接口的集合类,该类无序不可重复

*

* List接口

* 实现了该接口的类: ArrayList

* 注意:List中的有序不是指自然有序,而是指添加的顺序和遍历出来的顺序是一致的。

*

* List中特有的方法:

* 添加:

* add(int index, E element)

* addAll(int index, Collection? extends E> c)

* 获取

* get(int index)

* indexOf(Object o)

* lastIndexOf(Object o)

* subList(int from INdex, int toINdex)

* 修改

* set(int index, E element)

*

*  List集合类特有方法的特点:所有的方法都存在索引值,类似于python中的列表的操作,如果需要经常

* 使用导索引来操作集合,那么就使用List。

*

* 迭代

* listIterator() 返回的是一个List中特有的迭代器对象

* listIterator()特有的方法

*

* hasPrevious() 判断当前集合迭代器的游标所在位置是否有上一个元素false,有的话返回true ,没有返回

* previous() 迭代器的游标先向上移动一个位置,再获取当前位置的元素;

* next() 迭代器的游标先获取当前位置的元素,再向下移动一个位置。

*

* add(E e) 把元素插入迭代器游标所在的位置,同时游标也会下移一个位置

* set(E e) 使用e跌换爹地器最后一次放回的元素

*

* 总结:List集合元素遍历的方法:

* 1. 使用for + size() + get()方法

* 2. 使用ListIterator正序遍历方法 hasPrevious + previous

* 3. 使用ListIterator反序遍历方法 hasNext + next()

*注意:迭代器在使用的过程中的元素的过程中不能使用集合的方法来改变集合元素个数,只能使用迭代器的方法来改变元素的个数,否则会抛出异常

*迭代器从创建、使用到结束使用就是迭代器的过程

*

*/

public class Demo2 {

//1. 可重复以及有序验证

/*

* public static void main(String[] args){

Collection c = new ArrayList();

c.add("张山1");

c.add("张山");

c.add("张山");

c.add("张山2");

c.add("张山3");

Iterator iter = c.iterator();

while(iter.hasNext()){

System.out.println(iter.next());

}

}

*/

public static void main(String[] args){

List list = new ArrayList();

list.add("张珊"); //add是将元素添加到末尾

list.add("李四");

list.add("王五");

/*

list.add(2,"赵六"); //在指定位置添加元素

*/

Iterator iter = list.iterator();

while(iter.hasNext()){

System.out.println(iter.next());

}

/*

List list2 = new ArrayList();

list2.add("龙哥");

list2.add("凤姐");

//在指定位置插入另一个集合

list.addAll(2,list2);

*/

/*

*

System.out.println(list.get(0));

//遍历集合的元素

for(int i=0; i

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java源码研究之容器(1) 如何看源码 很多时候我们看源码, 看完了以后经常也没啥收获, 有些地方看得懂, 有些...
    骆驼骑士阅读 4,571评论 0 22
  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 5,397评论 0 3
  • 1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:V...
    Oneisall_81a5阅读 4,365评论 0 11
  • 一.集合框架 1.集合框架(对象数组的概述和使用) a.案例演示 * 需求:我有5个学生,请把这个5个学生的信息存...
    梦游的沙师弟阅读 3,576评论 0 1
  • 1 场景问题# 1.1 工资表数据的整合## 考虑这样一个实际应用:整合工资表数据。 这个项目的背景是这样的,项目...
    七寸知架构阅读 7,342评论 0 53