Collection接口之List接口

摘要:

在java中集合主要分为两类,collection和map两个大的接口,collection又分为list和set接口,这里记录list接口中常用的方法。

list的特点:

list存储的数据是有序的,可重复的。

list的主要实现类:

  • ArrayList(可以看作是一个动态的数组,底层会自动扩容,线程不安全,查询效率高,插入效率低)

  • LinkedList(底层是双向链表,查询效率低,插入效率高)

  • vector(线程安全,基本不使用)

list中常用的方法(按功能分,可以从增、删、改、查,插,长度,遍历几个方面描述)

  • 增:
    void add(Object obj) // 在末尾增加一个obj元素
    boolean addAll(int index, Collection ele) // 在指定的位置处添加所有的集合元素到集合中

  • 删:
    remove(int index) 或者 remove(Object obj),分别表示移除指定索引的元素和移除指定值的元素,前者是List接口独有的,后者是Collection共有的。

  • 改:
    Object set(int index,Object ele) // 设置指定index位置的元素为ele

  • 查:
    Object get(int index) // 获取指定index位置的元素

  • 插:
    void add(int index, Object ele) // 在指定位置上增加ele元素

  • 长度
    int size()

  • 第一次出现元素的索引和最后一次出现的索引
    indexOf(Object obj) 和lastIndexOf(Object obj)

  • 遍历:有三种

    • 迭代器Iterator
    • 增强for
    • 普通for或者while

demo示例

public class ArrayList{
  @Test
  public void test1(){
  
    ArrayList list = new ArrayList();
    /*在末尾添加*/
    list.add(123); // 添加元素
    list.add("abc");
    list.add(123) ;// 体现了list的可重复性
    list.add(new Date();
    /*在指定位置插入*/
    list.add(1, "BB"); // 在第二个位置上添加BB元素
    /*将一个集合的所有元素添加到一个集合中*/
    List list2 = Arrays.asList(1,2,3); // 通过数组工具类创建一个新的List
    list.addAll(list2); // 此时的集合中会多出三个元素1,2,3
    /*将一个集合作为一个整体添加到一个集合中*/
    List list3 = Arrays.asList("a","b","c"); 
    list.add(list3) // 将集合list3作为一个整体添加到list集合中

    /*返回123首次出现的索引*/
    int index = list.indexOf(123);
    /*返回123最后一次出现的位置*/
    index lastIndex = list.lastIndexOf(123);
    /*从集合中删除元素*/
    Object o = list.remove(0) // 删除第一个位置的元素, 这里删除是指按照索引删除,其实add元素的时候比如123,其实添加的是包装类的对象,会自动装箱,因此要移除指定值的元素,我们需要手动装箱,如list.remove(new Integer(123));就会移除指定值的123
    /**改*/
    list.set(1, "cc"); // 将位置为2的元素修改为CC
    /*使用Iterator遍历*/
    Iterator iterator = list.iterator();
    while(iterator.hasNext()){
      System.out.println(iterator.next());
    }

    /*使用增强for*/
    for(Object ob: List){
      System.out.println(ob);
    } 
    /*普通for*/
    for(int i = 0; i < list.size(); i++){
        System.out.println(list.get(i));
    }
  }

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,951评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,606评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,601评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,478评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,565评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,587评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,590评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,337评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,785评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,096评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,273评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,935评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,578评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,199评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,440评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,163评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,133评论 2 352

推荐阅读更多精彩内容

  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,375评论 0 4
  • 四、集合框架 1:String类:字符串(重点) (1)多个字符组成的一个序列,叫字符串。生活中很多数据的描述都采...
    佘大将军阅读 749评论 0 2
  • ​ 在编写java程序中,我们最常用的除了八种基本数据类型,String对象外还有一个集合类,在我们的的程序中到处...
    Java帮帮阅读 1,417评论 0 6
  • 3.3 集合 一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另...
    闫子扬阅读 726评论 0 1
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,781评论 0 38