List 和 ListIterator

来源:互联网 发布:工作流引擎数据库设计 编辑:程序博客网 时间:2024/06/06 01:13

List

List集合是Collection集合的子接口,你里面的iterator()方法在我的List也可以用!
List集合是一个有序的集合,是可以有重复的元素 有序:指的是元素存储和取出是一致的!
Set集合:是另一个子接口:元素不能重复! treeSet hashSet

List集合的特有功能:

添加功能:
void add(int index,Object element):在指定位置添加指定的元素
获取功能:
Object get(int index):获取指定位置的元素
删除功能:
Object remove(int index):删除指定位置的元素,返回的就是删除的元素
list的迭代器:
List列表的迭代器
ListIterator listIterator():ListIterator 继承自 Collection中的

Iterator接口

替换功能:
Object set(int index,object element):将指定位置的元素用element该元素替代,返回的是需要被替代的元素!

代码:

public static void main(String[] args) {    List l = new ArrayList();    l.add("Hello");    l.add("World");    l.add("Java");    System.out.println(l);    //添加功能:void add(int index,Object element):在指定位置添加指定的元素    l.add(1, "爱");    System.out.println(l);    //获取功能: get(int index):获取指定位置的元素    System.out.println(l.get(1));    //删除功能:Object remove(int index):删除指定位置的元素,返回的就是删除的元素    System.out.println(l.remove(1));    System.out.println(l);    //Object set(int index,object element):将指定位置的元素用element该元素替代,返回的是需要被替代的元素!    System.out.println(l.set(1, "爱"));    System.out.println(l);}

结果:

[Hello, World, Java]
[Hello, 爱, World, Java]


[Hello, World, Java]
World
[Hello, 爱, Java]

ListIterator

List集合专有迭代遍历方式ListIterator listIterator() ;

ListIterator接口:
boolean hasNext():表示正向遍历:是否有下一个可以迭代的元素
Object next():获取下一个元素

    boolean hasPrevious():表示逆向遍历:是否有上一个可以迭代的元素    Object previous()返回列表中的前一个元素

有个顺序问题:要想使用逆向遍历,必须先向遍历,如果先逆向遍历,没意义,一般不这样使用!

list集合有3种遍历方式:
迭代器遍历方式替代掉普通for(get()/size()相结合)

    迭代器遍历:            Iterator iterator()            ListIterator listiterator():列表迭代器!

代码:

 public static void main(String[] args) {      List l = new ArrayList();    sdudent s1 = new sdudent("张三",20,"188");    sdudent s2 = new sdudent("李四",21,"186");    sdudent s3 = new sdudent("王五",22,"185");      l.add(s1);      l.add(s2);      l.add(s3);      //使用for循环遍历      for(int x = 0;x<l.size();x++){          sdudent s = (sdudent)l.get(x);          System.out.println(s.getAge()+"-"+s.getName()+"-"+s.getWeight());      }      System.out.println("----------------");      //使用迭代器遍历      Iterator lt= l.iterator();      while(lt.hasNext()){          sdudent s = (sdudent)lt.next();          System.out.println(s.getAge()+"-"+s.getName()+"-"+s.getWeight());      }      System.out.println("----------------");      //使用列表迭代器遍历      ListIterator li= l.listIterator();      while(li.hasNext()){          sdudent s = (sdudent)li.next();          System.out.println(s.getAge()+"-"+s.getName()+"-"+s.getWeight());      }      System.out.println("----------------");      //倒序      while(li.hasPrevious()){          sdudent s = (sdudent)li.previous();          System.out.println(s.getAge()+"-"+s.getName()+"-"+s.getWeight());      }}

结果

20-张三-188
21-李四-186
22-王五-185

20-张三-188
21-李四-186
22-王五-185

20-张三-188
21-李四-186
22-王五-185

22-王五-185
21-李四-186
20-张三-188

原创粉丝点击