47. List中特有的方法
集合的体系:
--------------| Collection  单列集合的根接口
----------| List 如果实现了List接口的集合类,该类具备的特点是:有序,可重复
----------| Set  如果实现了Set几口的集合类,该类具备的特点:无序,不可重复
list的特有方法:
    
    添加
       add(int index, E element)    把元素添加到指定索引的位置
       addAll(int index, Collection<? extends E> c)   根据索引把一个集合中的所有元素添加到另一个集合中
        
    删除
       remove(int index)      根据索引删除集合中的指定元素
    
    查看
       get(int index)        获取集合中指定索引处的元素
       subList(int fromIndex, int toIndex)  指定开始和结束位置,获取集合中的一些元素(包头不包尾)
       indexOf(Object o)     获取集合中指定元素第一次出现的位置(索引值)
       lastIndexOf(Object o)  获取集合中指定元素最后一次出现的位置(索引值)
            
    修改     
       set(int index, E element)  替换指定元素中的元素(element:修改后的值)
    
    迭代器
       listIterator()    返回列表中元素的列表迭代器
       listIterator(int index) 返回列表中指定元素的列表迭代器(index:开始位置)
                  
    总结:我们发现List接口中特有的方法都存在索引值,所以我们如果要
listIterator特有的方法:
    
    hasPrevious() 判断是否有上一个元素
    previous()   指针先向下移动一位,再取出当前指针指向的元素
    next()     先取出当前指针指向的元素,指针再向下移动一位
    add()      把元素添加到当前的指针指向的位置
    set()      用指定元素替换 next 或 previous 返回的最后一个元素     
注意:当我们开始迭代的时候,指针默认指定的是第一个元素
下面我们来一段代码:
public static void main(String[] args) {
        List list = new ArrayList();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        ListIterator listit = list.listIterator();
        while(listit.hasNext()) {
            System.out.print(listit.next()+",");
        }
        System.out.println("");
        while(listit.hasPrevious()) {
            System.out.print(listit.previous()+",");
        }
    }

这时我们是不是感到很疑惑:为什么第二个循环输出王五呢?按照上面的说法,第二个循环只能取出李四和张三吗?
首先我们来看看next的定义:
next() 先取出当前指针指向的元素,指针再向下移动一位
我们可以发现:当next去除最后一个元素的时候指针往下移动了一位,然后才判断没有元素了。
按照上面的例子,这个时候的指针指向的是3(索引)
我们再看previous方法的定义:
previous() 指针先向下移动一位,再取出当前指针指向的元素
我们可以发现,如果这个时候指针指向的是3,那么指针再向上移动一位,这个时候的指针指向的是2,所以输出了王五
47. List中特有的方法的更多相关文章
- 49. ArrayList   LinkedList中特有的方法
		
集合的体系:--------------| Collection 单列集合的根接口 ----------| List 如果实现了List接口的集合类,该类具备的特点是:有序,可重复 ------|A ...
 - 20、List集合中特有的方法
		
List里面的特有方法简介 List中除了Collection里面的方法以外,内部还有一些方法,通过这些方法,开发者可以更方便的操作List接口的实现类. package com.monkey1024 ...
 - Java中的List接口特有的方法
		
import java.util.ArrayList; import java.util.List; /* List接口中特有方法: 添加 add(int index, E element) addA ...
 - List接口中特有方法
		
import java.util.ArrayList; import java.util.List; /* List接口中特有方法: 添加 add(int index, E element) addA ...
 - 为什么不能在init和dealloc函数中使用accessor方法
		
前言 为什么不要在init和dealloc方法中调用getter和setter:Apple在Mac与iOS中关于内存管理的开发文档中,有一节的题目为:"Don'tUse Accessor M ...
 - 浅谈Java中的hashcode方法
		
哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率.在Java的Object类中有一个方法: 1 public native int hashCode(); 根据 ...
 - 千万不要误用 java 中的 HashCode 方法
		
刚才debug追堆栈的时候发现一个很奇怪的问题 我用IE8和Google的浏览器访问同一个地址 Action的 scope="session" 也设置了 而且两个浏览器提交的参数m ...
 - Microsoft Dynamics CRM 2011的组织服务中的RetrieveMultiple方法(转)
		
本篇文章,介绍Microsoft Dynamics CRM 2011的组织服务中的RetrieveMultiple方法. RetreiveMultiple方法,用于获取实体的多个实例,该方法的签名如下 ...
 - Java中的native方法
		
博客引用地址:Java中的native方法 今天花了两个小时把一份关于什么是Native Method的英文文章好好了读了一遍,以下是我依据原文的理解. 一. 什么是Native Method 简单地 ...
 
随机推荐
- Java删除过期文件
			
public static void main(String[] args) throws IOException { long cut = LocalDateTime.now().minusWeek ...
 - TCP建立连接的三次握手和释放连接的四次挥手
			
TCP建立连接时,为什么要进行三次握手? 举个打电话的例子: A : 你好我是A,你听得到我在说话吗 B : 听到了,我是B,你听到我在说话吗 A : 嗯,听到了 建立连接,开始聊天! 第一次握手 第 ...
 - 界面设计微信小程序
			
上一个周期将微信小程序的程序编完了,虽然还有很多需要修改的地方,大体已经完成.剩下的边角料以后再弄 这个周期来学习一下微信小程序的设计....好吧. 首先还是需要看一下微信的设计指南的.地址 http ...
 - 八、结构模式之组合(Composite)模式
			
组合模式属于对象的结构模式,有时又叫做部分-整体模式,组合模式将对象组织到树结构中,可以用来描述整体与部分的联系.其可以使客户端将单纯元素和组合元素同等对待. 当需求中是体现部分与整体层次的结构时,以 ...
 - 【Luogu】【关卡2-4】排序Ex(2017年10月)
			
任务说明:这里的排序就更上一层了.不仅融合了别的算法与技巧,排序本身也有各种花招.
 - 赋能时空云计算,阿里云数据库时空引擎Ganos上线
			
随着移动互联网.位置感知技术.对地观测技术的快速发展,时空信息已从传统GIS行业渗透到大众应用及各行各业.从静态POI(兴趣点)到APP位置信息,从导航电子地图到车辆行驶轨迹,从卫星影像到三维城市建模 ...
 - spring 对JDBC的支持 (8)
			
目录 一.jdbc的简介 二.jdbcTemplate 的使用 2.1 maven 引入spring - jdbc ,c3p0 ,数据库mysql驱动 2.2 配置 数据源以及jdbcTemplate ...
 - 关于iframe定位碰到的问题。
			
这几天在做自动化测试的时候发现一个问题,用JQUERY定位时,总是报错,MES:JQUERY IS NOT DEFINED. 检查自己定位没有问题,后来想是不是语法出了问题. 切换成XPATH来定位, ...
 - springboot使用自带连接池连接postgre
			
Application配置spring.datasource.url=jdbc:postgresql://***:5432/postgresspring.datasource.username=pos ...
 - Java-Class-FC:java.time.Duration
			
ylbtech-Java-Class-FC:java.time.Duration 1.返回顶部 2.返回顶部 3.返回顶部 1. /* * Copyright (c) 2012, 2015, ...