1.定义

List是Collection的子接口,元素有序并且可以重复,表示线性表。

2.方法

add(int index,Object e):在指定索引(和数组下标类似,为0,1,2....)放入元素

addAll(int index,Collection e):在指定索引处放入集合

Object get(int index):获取指定索引的元素

int indexOf(Object o):获取指定元素在集合中的索引(若元素重复,返回元素第一次所在的索引),判定方法为equals(),需要重写equals方法

int lastIndexOf(Object o):返回此列表中最后出现的元素的索引

Object remove(int index):删除指定索引对应的元素

Object set(int index,Object e):替换指定索引的元素

List subList(int fromIndex, int toIndex):返回索引为[form,to)的元素集合

3.常用实现类

ArrayList:它为元素提供了下标,可以看作长度可变的数组,为顺序线性表。

LinkedList:通过代价较低的在List中间进行插入和删除操作,提供了优化的顺序访问,但是在随即访问方面相对比较慢,为链表线性表。

4.实例

import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import org.junit.Test;
import day8.Customer;
                //可以看作长度可变的数组,元素可以重复
public class TestArrayList {

//遍历操作
    public void iteratecollection(Collection c){
        Iterator it=c.iterator();
        while(it.hasNext()){
            Object obj=it.next();
            System.out.println(obj);
        }
    }
    //索引:索引和数组下标类似,为0,1,2.....
    @Test
    public void tesList(){
        List l1=new ArrayList();
        l1.add(new Customer(1,"AA"));
        l1.add(new Customer(2,"BB"));
        l1.add(new Customer(3,"CC"));
        l1.add(new Customer(4,"DD"));
        iteratecollection(l1);
        System.out.println();

//增强for循环遍历操作
        /*for(Object l :l1){
            System.out.println(l);
        }*/ 
        /*//add(int index,Object e)在指定索引处(和数组类似,索引为0,1,2....)放入元素
        l1.add(3,new Customer(5,"EE"));
        iteratecollection(l1);
        System.out.println();*/      
        //addAll(int index,Collection e)在指定索引放入集合
        l1.addAll(3,Arrays.asList(new Customer(5,"EE"),new Customer(6,"FF")));
        iteratecollection(l1);
        System.out.println();     
        //Object get(int index)获取指定索引的元素
        Object obj=l1.get(0);
        System.out.println(obj);

//      Customer cc=(Customer) l1.get(1);   //类型的强制转换
//      System.out.println(cc);
        System.out.println();      
        //int indexOf(Object o)获取指定元素在集合中的索引(若元素重复,返回元素第一次所在的索引),判定方法为equals(),需要重写equals方法
        int index=l1.indexOf(new Customer(3,"CC"));
        System.out.println(index);
        System.out.println();      
        //int lastIndexOf(Object o)返回此列表中最后出现的指定元素的索引
        l1.add(new Customer(3,"CC"));
        int lastindex=l1.lastIndexOf(new Customer(3,"CC"));
        System.out.println(lastindex);      
        //Object remove(int index)删除指定索引对应的元素
        l1.remove(2);    
        //Object set(int index,Object e)替换指定索引的元素
        l1.set(2, new Customer(3,"LL"));
        iteratecollection(l1);
        System.out.println();       
        //List subList(int fromIndex, int toIndex)返回索引为[form,to)的元素集合
        List sublist=l1.subList(1, 3);
        System.out.println(sublist);    
    }
}

涉及的完整代码:http://www.cnblogs.com/jfl-xx/p/4707643.html

Java集合——List接口的更多相关文章

  1. Java集合Map接口与Map.Entry学习

    Java集合Map接口与Map.Entry学习 Map接口不是Collection接口的继承.Map接口用于维护键/值对(key/value pairs).该接口描述了从不重复的键到值的映射. (1) ...

  2. java集合类型接口和实现类个人总结

    转载:http://blog.csdn.net/qingchunbusanchang/article/details/39576749 java的集合是一个比较综合的概念,相关的知识有很多的博客里面做 ...

  3. JAVA集合--Iterator接口

        本文首发于cartoon的博客     转载请注明出处:https://cartoonyu.github.io/cartoon-blog     上一篇文章中我在集合元素的遍历中已经有涉及到I ...

  4. JAVA集合--Collection接口

        本文首发于cartoon的博客     转载请注明出处:https://cartoonyu.github.io/cartoon-blog     在概述里面也说过:Collection是jav ...

  5. java集合——Collection接口

    Collection是Set,List接口的父类接口,用于存储集合类型的数据. 2.方法 int size():返回集合的长度 void clear():清除集合里的所有元素,将集合长度变为0 Ite ...

  6. Java集合——Set接口

    1.定义 set中不允许放入重复的元素(元素相同时只取一个),使用equals()方法进行比较.如果返回true,两个对象的HashCode值也应该相等 2.方法 add():添加元素 remove( ...

  7. Java集合——Map接口

    1.定义 Map用于保存存在映射关系<key,value>的数据.其中,key值不能重复(使用equals()方法比较),value值可以重复 2.方法 V  put(key,value) ...

  8. Java 集合-List接口和三个子类实现

    List List:有序的 collection(也称为序列).此接口的用户可以对列表中每个元素的插入位置进行精确地控制.用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素.与 ...

  9. Java 集合-Collection接口和迭代器的实现

    2017-10-30 00:30:48 Collection接口 Collection 层次结构 中的根接口.Collection 表示一组对象,这些对象也称为 collection 的元素.一些 c ...

随机推荐

  1. P2P小贷网站业务数据流程分享

    P2P小贷网站业务数据流程分享 引言 这是去年年底开发的一个项目,完成后和用户的衔接没有很好的做起来,所以项目就搁浅了.9月以来,看各路P2P风声水起,很是热闹:这里分享下我的设计文档,算是抛砖引玉, ...

  2. Fiddler界面详解

    Statistics 页签 完整页签如下图: Statistics 页签显示当前用户选择的 Sessions 的汇总信息,包括:选择的 Sessions 总数.发送字节数.接收字节数.响应类型的汇总表 ...

  3. HTML笔记(三) 列表

    1. 无序ul标签: <html> <body> <h4>一个无序列表:</h4> <ul> <li>咖啡</li> ...

  4. A Star算法笔记

    回顾A*算法,偶得一源代码,略有瑕疵,改正之,并置于下. using System; using System.Collections.Generic; using System.Linq; usin ...

  5. updatePanel导致JS失效的解决办法(转)

    吐槽下,维护别人之前做的项目好蛋疼,整个页面都是用微软的ajax框架. 今天给repeater用JS写一个hover事件 <script type="text/javascript&q ...

  6. Redis基础知识之————使用技巧(持续更新中.....)

    一.key 设计技巧 把表名转换为key前缀 如, tag: 第2段放置用于区分区key的字段--对应mysql中的主键的列名,如userid 第3段放置主键值,如2,3,4...., a , b , ...

  7. Mysql插入数据的时候,中文乱码问题的解决

    如果在Mysql中插入数据的时候,没有特定指定编码,可能会产生一系列的问题,例如,如果用insert语句的时候,可能提示incorrect values,等...究其原因,实际上无非是要让数据库和表中 ...

  8. 转:从开源项目学习 C 语言基本的编码规则

    从开源项目学习 C 语言基本的编码规则 每个项目都有自己的风格指南:一组有关怎样为那个项目编码约定.一些经理选择基本的编码规则,另一些经理则更偏好非常高级的规则,对许多项目而言则没有特定的编码规则,项 ...

  9. 转:union 联合体(共用体)

    转自:http://blog.csdn.net/xiao3404/article/details/22276485 2.共用体 2.1共用体的概念 共用体是一种构造类型的数据结构.在一个“共用体”内可 ...

  10. double 逆序

    请设计一个函数,不许用到字符串函数,用数学运算,将double类型数据转换,例如123.456转换成654.321 int _tmain(int argc, _TCHAR* argv[]) { con ...