集合框架二: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);


}


}

}

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 完全删除SQL SERVER[通俗易懂]

    完全删除SQL SERVER[通俗易懂]    我们在安装SQLSERVER的时候,有时会出现问题,而在重新安装的时候,有时候会因为上次安装遗留的东西而导致本次安装失败,所以完全删除SQLSERVER比较重要。完全删除方法如下:      1、控制面板里删除。2、安装目录文件夹删除。3、注册表删除。4、安装windows install clean up 删除所有sql相关的东西。    …

  • git丢弃本地修改的所有文件(新增、删除、修改)「建议收藏」

    git丢弃本地修改的所有文件(新增、删除、修改)「建议收藏」本地修改了许多文件,其中有些是新增的,因为开发需要这些都不要了,想要丢弃掉,可以使用如下命令:gitcheckout.#本地所有修改的。没有的提交的,都返回到原来的状态gitstash#把所有没有提交的修改暂存到stash里面。可用gitstashpop回复。gitreset–hardHASH#返回到某个节点,不保留修改。gitreset–softHASH#返

    2022年10月23日
  • Excel中的VBA编程「建议收藏」

    Excel中的VBA编程「建议收藏」目的:有时我们需要对Excel文件中大量的数据进行整理,此时如果使用手动整理会非常繁琐而且容易出错。而如果采用VBA语言,在Excel中根据需求编写一段简单的代码就能自动完成大量数据的整理工作。以Excel2007为例,如果要进行VBA编程,需要启用“开发工具”选项。在Excel选项对话框中勾选【在功能区显示“开发工具“选项卡】复选框。基本语法:1、给当前工作表的

  • Struts2漏洞复现合集

    Struts2漏洞复现合集1.Struts2简介Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2是Struts的下一代产品,是在struts1和WebWork的技术基础上进行了合并的全新的Struts2框架。其全新的Struts2的体系结构与Struts1的体系结构差别巨大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务

  • MacPorts_苹果mac教程

    MacPorts_苹果mac教程在macOS上管理软件包,MacPorts和homebrew是不错的选择。但有网友说MacPorts倾向于在自己电脑上编译,而homebrew倾向于使用已经编译好的。这些暂且不论,但有一点,MacPorts是个老牌的工具,它支持的库确实比homebrew多,这让我不得不选择MacPorts.下面简单介绍下MacPortsMacPorts官方文档:https://guide.macpor

  • 基于LM331的频率电压转换电路「建议收藏」

    基于LM331的频率电压转换电路「建议收藏」常用的模拟信号的传输方式有电压传输、电流传输和频率传输,其中电压传输的方式最为简单方便,成本最低,但是电压信号在传输的过程中最容易受到干扰,并且传输过程会有损耗,因此不适合远距离传输。将电压转换为电流或者频率后,可以进行远距离传输,且抗干扰能力强,其中电流传输的抗干扰能力最好,传输距离最远,但是成本较高,而频率在距离超过100m时波形会失真,抗干扰能力介于电压和电流之间。本文主要介绍基于LM331的频率-电压转换电路,关于LM331的简介和电压-频率转换电路可以参考《基于LM331的电压频率转换电路》。

发表回复

您的电子邮箱地址不会被公开。

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