List包括List接口以及List接口的所有实现类。因为List接口实现了Collection接口,所以List接口拥有Collection接口提供的所有常用方法,又因为List是列表类型,所以List接口还提供了一些适合自身的常用方法,如下:

  add(int index,Object obj):用来向集合的指定索引位置添加对象,其它对象的索引位置相对后移以为,索引位置从0开始

  addAll(int index,Collection coll):用来向集合的指定索引位置添加指定集合中的所有对象

  remove(int index):用来清除集合中指定索引位置的对象

  set(int index, Object obj):用来将集合中指定索引位置的对象修改为指定对象

  get(int index):用来获得指定索引位置的对象

  indexOf(Object obj):用来获得指定对象的索引位置。当存在多个时,返回第一个的索引位置;当不存在时,返回-1。

  lastIndexOf(Object obj):用来获得指定对象的索引位置。当存在多个时,返回最后一个的索引位置;当不存在时,返回-1。

  listIterator():用来获得一个包含所有对象的ListIterator迭代器。

  listIterator(int index):用来获得一个包含指定索引位置到最后的ListIterator迭代器。

  subList(int fromIndex,int toIndex):通过截取从起始索引位置fromIndex(包含)到终止索引位置toIndex(不包含)的对象,重新生成一个  List集合并返回。

  

  以上可以看出,List接口提供的适合于自身的常用方法均与索引有关,这是因为List集合为列表类型,以线性方式存储对象,可以通过对象的索引操作对象。

  List接口的常用实现类有ArrayList和LinkedList,在使用List集合时,通常情况下声明为List类型,实例化时根据实际情况的需要,实例化为ArrayList或LinkedList,例如:

  List<String> l = new ArrayList<String>();// 利用ArrayList类实例化List集合

  List<String> l2 = new LinkedList<String>();// 利用LinkedList类实例化List集合

1.add(int index, Object obj)方法和set(int index, Object obj)方法的区别
在使用List集合时需要注意区分add(int index, Object obj)方法和set(int index, Object obj)方法,前者是向指定索引位置添加对象,而后者是修改指定索引位置的对象。

2.List集合可以通过索引位置访问对象,还可以通过for循环遍历List集合:

import java.util.List;
import java.util.LinkedList;
import java.util.Iterator;
public class Demo341{
public static void main(String[] args){
List<String> list=new LinkedList<String>();
list.add("a");
list.add("b");
list.add("c");
Iterator<String> it=list.iterator();
while(it.hasNext()){
System.out.print(it.next());
}
}
}//~output:abc
import java.util.List;
import java.util.LinkedList;
import java.util.Iterator;
public class Demo342{
public static void main(String[] args){
List<String> list=new LinkedList<String>();
list.add("a");
list.add("b");
list.add("c");
for(int i=0;i<list.size();i++){
System.out.print(list.get(i));//利用get(int index)方法获得指定索引位置的对象
}
}
}//~output:abc

3.indexOf(Object obj)方法和lastIndexOf(Object obj)方法的区别
在使用List集合时需要注意区分
indexOf(Object obj)方法和lastIndexOf(Object
obj)方法,前者是获得指定对象的最小的索引位置,而后者是获得指定对象的最大的索引位置,前提条件是指定的对象在List集合中具有重复的对象,否则
如果在List集合中有且仅有一个指定的对象,则通过这两个方法获得的索引位置是相同的。

4.subList(int fromIndex, int toIndex)方法
在使用subList(int fromIndex, int toIndex)方法截取现有List集合中的部分对象生成新的List集合时,需要注意的是,新生成的集合中包含起始索引位置代表的对象,但是不包含终止索引位置代表的对象。

Java中的List(转)的更多相关文章

  1. java中的锁

    java中有哪些锁 这个问题在我看了一遍<java并发编程>后尽然无法回答,说明自己对于锁的概念了解的不够.于是再次翻看了一下书里的内容,突然有点打开脑门的感觉.看来确实是要学习的最好方式 ...

  2. java中的字符串相关知识整理

    字符串为什么这么重要 写了多年java的开发应该对String不陌生,但是我却越发觉得它陌生.每学一门编程语言就会与字符串这个关键词打不少交道.看来它真的很重要. 字符串就是一系列的字符组合的串,如果 ...

  3. Java中的Socket的用法

                                   Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...

  4. java中Action层、Service层和Dao层的功能区分

    Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的. Service是管理具体的功能的. Action只负责管理,而Service负责实施. DAO只 ...

  5. Java中常用集合操作

    一.Map 名值对存储的. 常用派生类HashMap类 添加: put(key,value)往集合里添加数据 删除: clear()删除所有 remove(key)清除单个,根据k来找 获取: siz ...

  6. java中的移位运算符:<<,>>,>>>总结

    java中有三种移位运算符 <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     右移运算符,num >& ...

  7. 关于Java中进程和线程的详解

    一.进程:是程序的一次动态执行,它对应着从代码加载,执行至执行完毕的一个完整的过程,是一个动态的实体,它有自己的生命 周期.它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而 ...

  8. Java中的进程和线程

     Java中的进程与线程 一:进程与线程 概述:几乎任何的操作系统都支持运行多个任务,通常一个任务就是一个程序,而一个程序就是一个进程.当一个进程运行时,内部可能包括多个顺序执行流,每个顺序执行流就是 ...

  9. Java中的进程与线程(总结篇)

    详细文档: Java中的进程与线程.rar 474KB 1/7/2017 6:21:15 PM 概述: 几乎任何的操作系统都支持运行多个任务,通常一个任务就是一个程序,而一个程序就是一个进程.当一个进 ...

  10. 初探java中this的用法

    一般this在各类语言中都表示“调用当前函数的对象”,java中也存在这种用法: public class Leaf { int i = 0; Leaf increment(){ i++; retur ...

随机推荐

  1. 如何在github上创建一个Repository (Windows)

    一种方式是利用Github for windows工具 来操作github,这个是我推荐的方式 1 请先下载一个工具Github for windows,下载地址为:https://windows.g ...

  2. 转:如何创建.htaccess文件

    方法1.开始-运行-键入cmd,打开cmd窗口 此时的cmd窗口路径是C:\Documents and Settings\username> 键入以下(不包括括号内信息): copy con . ...

  3. Node.js 安装 初体验(1)

    1.安装nodejs http://nodejs.org/download/  自动根据系统下载自己的版本node.js 2.环境变量 windows 安装,不需要配置环境变量   mac安装后,会提 ...

  4. 开源src镜像

    开源src镜像: http://download.savannah.gnu.org/releases/

  5. BZOJ1646: [Usaco2007 Open]Catch That Cow 抓住那只牛

    1646: [Usaco2007 Open]Catch That Cow 抓住那只牛 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 634  Solved ...

  6. 自定义AuthorizeAttribute

    原文地址:http://www.cnblogs.com/shanyou/archive/2010/03/29/1699511.html 网站的权限判断是一个非常普遍的需求,从文章ASP.NET MVC ...

  7. (转)Maven实战(三)Eclipse构建Maven项目

    1. 安装m2eclipse插件    要用Eclipse构建Maven项目,我们需要先安装meeclipse插件    点击eclipse菜单栏Help->Eclipse Marketplac ...

  8. angular 按需加载

     angular.module('app',[]) .controller('ctrl',function ($http,$scope){ //ctrl控制器,名称作用的范围 html中ng-cont ...

  9. get client machine name

    System.Net.Dns.GetHostEntry(Request.ServerVariables["remote_addr"]).HostName;

  10. 数据库日期类型转换–HSQL

    最近遇到要用HSQL查询离某个时间的后十分钟的记录,不像Oracle和SqlServer中可以直接有函数转换,而是直接通过'+'来得到 Hsql Document -- standard forms ...