集合框架二:List

集合框架二:List

Collection类的子接口—List

位于:


java.util包下的


public interface List<E>extends Collection<E>

特点:List存储的特点:有序(存储和取出的元素一致)/可以重复的

允许多个 null 元素

一、List特有的成员方法:

1.void add(int index,Object element):在指定位置添加元素

2.Object get(int index);返回集合中指定的元素

3.ListIterator<E> listIterator(int index):List特有的迭代器


查看API 了解ListIterator 迭代器


其中有两个方法:


hasPrevious()


previous()


      和


hasNext();


next();方法进行比较


 

4.删除元素:


Object remove(int index):根据指定的索引删除元素,返回删除的元素




5.Object set(int index,Object element):根据索引修改元素,返回被修改的元素

6.返回集合中的元素个数:int size();

二、ConcurrentModificationException

表示:并发修改异常

集合中如果有kevin,就添加cidy

代码:

List<String> list = new ArrayList<String>();


list.add(“hello”);


list.add(“java”);


list.add(“kevin”);


// 自己写的遍历集合的工具类,


ArrayDemo.arrCollection(list);


System.out.println(“—————————“);


// 解决方法一:使用普通for


for (int i = 0; i < list.size(); i++) {


String s = list.get(i);


if (s.equals(“kevin”)) {


list.add(“cidy”);


}


System.out.println(s);


}


// 解决方法二:


ListIterator<String> lt = list.listIterator();


while (lt.hasNext()) {


String s = lt.next();


if (s.equals(“kevin”)) {

//将指定的元素插入列表(可选操作)。

//该元素直接插入到 next 返回的下一个元素的前面(如果有),

//或者 previous 返回的下一个元素之后(如果有)


lt.add(“cidy”);//ListIterator 中有个add()方法,可以添加到


}


}


System.out.println(list);

自己写的工具类:

import java.util.Collection;

import java.util.Iterator;

public class ArrayDemo {


private ArrayDemo(){};





public static void arrCollection(Collection c){


Iterator<String> i = c.iterator();


while (i.hasNext()) {


String s = i.next();


System.out.println(s);


}


}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100812.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 修改织梦默认栏目页、文章页URL命名规则,简化目录结构

    修改织梦默认栏目页、文章页URL命名规则,简化目录结构

    2021年9月19日
    42
  • native2ascii命令_native method

    native2ascii命令_native methodnative2ascii是一个关于转码的不错的命令.使用条件简单,只要安装了jdk之后,在cmd窗口就可以使用该命令对文件进行转码,而且转码过程是可逆的.安装路径下bin目录下,有一个native2ascii 批处理文件也可以完成转码.具体的语法如下:native2ascii-[options][inputfile[outputfile]]-[options]:表示命令开关,

    2025年10月29日
    2
  • 华为笔记本键盘锁住了(笔记本电脑键盘怎么亮起来)

    展开全部1、取消键:(退出e69da5e887aa62616964757a686964616f31333366306434键Esc)意思是逃脱、出口。主要作用是退出某个程序。如:在玩游戏时想退出来,按一下这个键即可。2、功能键:(F1——F12)在不同软件中,可起到不同的相应功用,也可以配合其它的键共同起作用。如:F1是帮助功能。3、切换键:(表格键Tab)意思是表格。主要是在文字处理软件里(如W…

    2022年4月14日
    298
  • ubuntu 安装QQ 和微信「建议收藏」

    1.下载deb安装包直接去longene官网下载就好了WineQQ7.8-20151109-Longene:http://www.longene.org/download/WineQQ7.8-20151109-Longene.deb下载完之后直接dpkg-iWineQQ7.8-20151109-Longene.deb如果是16.04LTS版本的系统,就执行sudogd

    2022年4月11日
    44
  • 详细介绍如何在ubuntu20.04中安装ROS系统,超快完成安装(最新版教程)

    详细介绍如何在ubuntu20.04中安装ROS系统,超快完成安装(最新版教程)  2020年的10月份,我整理写了一篇名为:详细介绍如何在ubuntu20.04中安装ROS系统,以及安装过程中出现的常见错误的解决方法,填坑!!!的博客,已经经过了很多小伙伴的验证,确实是可行的,该篇博客链接如下:【请点击此处进行跳转】  经过近期的探索,我将安装步骤进行了进一步的优化,使安装变得更加快速,更加简单,我已经验证了其可行性,期待更多的小伙伴们一起来验证  本次安装依旧采用在虚拟机中安装的模式,一年前我用的VMware15.5,现在用的VMware16.1.1,【获取方式(附安装步

    2022年6月15日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号