list java语法_java基础语法 List

List的用法

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

d9902051d351126c3f6d7d38b0b54a11.png

表1 List接口定义的常用方法及功能

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

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

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

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

1.add(int index, Object obj)方法和set(int index, Object obj)方法的区别

在使用List集合时需要注意区分add(int index, Object obj)方法和set(int index, Object obj)方法,前者是向指定索引位置添加对象,而后者是修改指定索引位置的对象,例如执行下面的代码:

src/com/mwq/TestCollection.java关键代码:

public static void main(String[] args) {

String a = "A", b = "B", c = "C", d = "D", e = "E";

List list = new LinkedList();

list.add(a);

list.add(e);

list.add(d);

list.set(1, b);// 将索引位置为1的对象e修改为对象b

list.add(2, c);// 将对象c添加到索引位置为2的位置

Iterator it = list.iterator();

while (it.hasNext()) {

System.out.println(it.next());

}

}

在控制台将输出如下信息:

A

B

C

D

因为List集合可以通过索引位置访问对象,所以还可以通过for循环遍历List集合,例如遍历上面代码中的List集合的代码如下:

src/com/mwq/TestCollection.java关键代码:

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

System.out.println(list.get(i));// 利用get(int index)方法获得指定索引位置的对象

}

src/com/mwq/TestCollection.java完整代码如下:

package com.mwq;

import java.util.ArrayList;

import java.util.LinkedList;

import java.util.Iterator;

import java.util.List;

public class TestCollection {

public static void main(String[] args) {

System.out.println("开始:");

String a = "A", b = "B", c = "C", d = "D", e = "E";

List list = new LinkedList();

list.add(a);

list.add(e);

list.add(d);

list.set(1, b);// 将索引位置为1的对象e修改为对象b

list.add(2, c);// 将对象c添加到索引位置为2的位置

Iterator it = list.iterator();

while (it.hasNext()) {

System.out.println(it.next());

}

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

//                       System.out.println(list.get(i));// 利用get(int index)方法获得指定索引位置的对象

//          }

System.out.println("结束!");

}

}

2.indexOf(Object obj)方法和lastIndexOf(Object obj)方法的区别

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

src/com/mwq/TestCollection.java关键代码:

public static void main(String[] args) {

String a = "A", b = "B", c = "C", d = "D", repeat = "Repeat";

List list = new ArrayList();

list.add(a);          // 索引位置为 0

list.add(repeat);      // 索引位置为 1

list.add(b);          // 索引位置为 2

list.add(repeat);      // 索引位置为 3

list.add(c);          // 索引位置为 4

list.add(repeat);      // 索引位置为 5

list.add(d);          // 索引位置为 6

System.out.println(list.indexOf(repeat));

System.out.println(list.lastIndexOf(repeat));

System.out.println(list.indexOf(b));

System.out.println(list.lastIndexOf(b));

}

src/com/mwq/TestCollection.java完整代码如下:

package com.mwq;

import java.util.ArrayList;

import java.util.List;

public class TestCollection {

public static void main(String[] args) {

System.out.println("开始:");

String a = "A", b = "B", c = "C", d = "D", repeat = "Repeat";

List list = new ArrayList();

list.add(a); // 索引位置为 0

list.add(repeat); // 索引位置为 1

list.add(b); // 索引位置为 2

list.add(repeat); // 索引位置为 3

list.add(c); // 索引位置为 4

list.add(repeat); // 索引位置为 5

list.add(d); // 索引位置为 6

System.out.println(list.indexOf(repeat));

System.out.println(list.lastIndexOf(repeat));

System.out.println(list.indexOf(b));

System.out.println(list.lastIndexOf(b));

System.out.println("结束!");

}

}

在控制台将输出如下信息:

1

5

2

2

3.subList(int fromIndex, int toIndex)方法

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

src/com/mwq/TestCollection.java关键代码:

public static void main(String[] args) {

String a = "A", b = "B", c = "C", d = "D", e = "E";

List list = new ArrayList();

list.add(a);          // 索引位置为 0

list.add(b);          // 索引位置为 1

list.add(c);          // 索引位置为 2

list.add(d);          // 索引位置为 3

list.add(e);          // 索引位置为 4

list = list.subList(1, 3);// 利用从索引位置 1 到 3 的对象重新生成一个List集合

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

System.out.println(list.get(i));

}

}

src/com/mwq/TestCollection.java完整代码:

package com.mwq;

import java.util.ArrayList;

import java.util.List;

public class TestCollection {

public static void main(String[] args) {

System.out.println("开始:");

String a = "A", b = "B", c = "C", d = "D", e = "E";

List list = new ArrayList();

list.add(a); // 索引位置为 0

list.add(b); // 索引位置为 1

list.add(c); // 索引位置为 2

list.add(d); // 索引位置为 3

list.add(e); // 索引位置为 4

list = list.subList(1, 3);// 利用从索引位置 1 到 3 的对象重新生成一个List集合

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

System.out.println(list.get(i));

}

System.out.println("结束!");

}

}

在控制台将输出如下信息:

B

C

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267083.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基础练习

口述题1.分别解释"","",""的含义。 是赋值语句 把一个值赋值给另一个值 是判断语句 判断两个值是否相等 是赋值语句 a1 等价于 aa1 2.两个变量的关系&#xff1f;n1123456n2n1 把123456赋值给变量n1,把n2赋值给n1,n1,n2共同指向123456这个地址 …

求大神解决下这个题目!做好请发到308960728@qq.com

RIP动态路由配置RIP是使用最广泛的距离向量协议&#xff0c;通过本次配置来理解RIP协议的传播、分析、挑选路由&#xff0c;来实现路由发现、路由选择、路由切换等功能&#xff0c;掌握RIP动态路由信息协议的配置方法。1.RIP配置环境与网络拓扑结构图实验设备&#xff1a;3台CI…

elastic search java_在 Java 应用程序中使用 Elasticsearch

如果您使用过 Apache Lucene 或 Apache Solr&#xff0c;就会知道它们的使用体验非常有趣。尤其在您需要扩展基于 Lucene 或 Solr 的解决方案时&#xff0c;您就会了解 Elasticsearch 项目背后的动机。Elasticsearch(构建于 Lucene 之上)在一个容易管理的包中提供了高性能的全文…

PostgreSQL增强版命令行客户端(pgcli)

效果&#xff1a; 安装&#xff1a; https://www.pgcli.com/install 官网&#xff1a; https://www.pgcli.com/ 转载于:https://www.cnblogs.com/EasonJim/p/9042418.html

网络设备的注册与初始化

2019独角兽企业重金招聘Python工程师标准>>> NIC可用之前&#xff0c;其相关联的net_device数据结构必须先初始化&#xff0c;添加到内核网络设备数据库、配置并开启。不要把注册/除名以及开启/关闭混淆是十分重要的&#xff0c;这是两种不同的概念&#xff1a; 如果…

[转]敏捷开发中编写高质量Java代码

本文转自&#xff1a;http://dev.yesky.com/103/11164603.shtml 敏捷开发的理念已经流行了很长的时间&#xff0c;在敏捷开发中的开发迭代阶段中&#xff0c;我们可以通过五个步骤&#xff0c;来有效的提高整个项目的代码质量。 Java项目开发过程中&#xff0c;由于开发人员的…

ios3怎么取消长按弹出菜单_苹果:iOS13取消3D-Touch重压改为长按只是个BUG~

原标题&#xff1a;苹果&#xff1a;iOS13取消3D-Touch重压改为长按只是个BUG~目前iOS 13中3D-Touch功能在桌面级菜单采用的是类似iPhone XR的触觉感应(Haptic touch)&#xff0c;用户只需要长按App图标即可呼出菜单&#xff0c;继续长按则会出现删除应用的抖动界面。不同于以往…

设△ABC的内角A,B,C,所对的边分别为a,b,c,且acosB-bcosA=3/5c,则tan(A-B)的最大值为

设△ABC的内角A,B,C,所对的边分别为a,b,c,且acosB-bcosA3/5c,则tan(A-B)的最大值为 转载于:https://www.cnblogs.com/Mary-Sue/p/9048289.html

BGP笔记1

1、BGP属于EGP&#xff0c;是高级DV协议&#xff0c;也被称为路径矢量协议&#xff0c;基于TCP 179端口。 2、现在使用版本BGP-4。 3、第一次做完整更新&#xff0c;以后就只增量更新 4、Autonomous Systems&#xff1a;运行同一种选路策略&#xff0c;由统一管理者管理。 1&am…

也说读书

记得当年毕业前夕&#xff0c;一位教授说&#xff1a;“希望你们毕业后&#xff0c;能坚持每年读10本书。”当时不以为然&#xff0c;区区十本&#xff0c;岂非小菜&#xff01;毕业后&#xff0c;迫于生计&#xff0c;东奔西走&#xff0c;很难静心读书&#xff0c;偶尔拿起书…

C# 巧用anchor和dock设计复杂界面(控件随着窗体大小的变化而变化)【转】

这个在做winform程序的空间编程的时候遇到过太多次了&#xff0c;自己也想留下点经验&#xff0c;搜索了一下&#xff0c;这篇文章很好很强大了&#xff0c;感谢博主“驴子的菜园”。 程序界面如上 各部分简要说明&#xff1a; 整个窗体上覆盖一个splitcontainer。 splitcontai…

mysql内链接与交叉连接_SQLServer 2008中的交叉连接与内部连接

这里是交叉连接和内部连接的最佳示例。考虑下表表&#xff1a;Teacherx------------------------x| TchrId | TeacherName |x----------|-------------x| T1 | Mary || T2 | Jim |x------------------------x表&#xff1a;Studentx-------------…

jmeter java接口_JMeter接口Java开发五步曲

想做jmeter接口二次开发但不知道如何入手&#xff0c;要解决这个问题&#xff0c;我们可以分为5个步骤第一步&#xff1a;了解jmeter处理java请求的流程第二步&#xff1a;通过实现jmeter中的接口JavaSamplerClient编写自定义JAVA接口第三步&#xff1a;打包第四步&#xff1a;…

@ConfigurationProperties和@Value不同的使用场景,@Bean添加组件 (6.spring boot配置文件注入)...

接上文 注释掉ConfigurationProperties使用Value注解 /*** <bean class"Person">* <property name"lastName" value"字面量/${key}从环境变量、配置文件中获取值/#{spel}"></property>* <bean/>*/ //Spring底层注解…

java继承孙子类_Java:类与继承

Java&#xff1a;类与继承对于面向对象的程序设计语言来说&#xff0c;类毫无疑问是其最重要的基础。抽象、封装、继承、多态 这四大特性都离不开类&#xff0c;只有存在类&#xff0c;才能体现面向对象编程的特点&#xff0c;今天我们就来了解一些类与继承的相关知识。首先&am…

P2787 语文1(chin1)- 理理思维

题目背景 蒟蒻HansBug在语文考场上&#xff0c;挠了无数次的头&#xff0c;可脑子里还是一片空白。 题目描述 考试开始了&#xff0c;可是蒟蒻HansBug脑中还是一片空白。哦不&#xff01;准确的说是乱七八糟的。现在首要任务就是帮蒟蒻HansBug理理思维。假设HansBug的思维是一长…

使用jstree创建无限分级的树(ajax动态创建子节点)

首先来看一下效果 页面加载之初 节点全部展开后 首先数据库的表结构如下 其中Id为主键,PId为关联到自身的外键 两个字段均为GUID形式 层级关系主要靠这两个字段维护 其次需要有一个类型 public class MenuType{public Guid Id { get; set; }public Guid PId { get; set; }publi…

排序算法杂谈(三) —— 归并排序的非递归实现

1. 递归 在众多排序算法中&#xff0c;归并排序&#xff08;Merge Sort&#xff09;和快速排序&#xff08;Quick Sort&#xff09;都是时间复杂度为 O(nlog2n) 的高效排序。 这两种排序有一种共性&#xff0c;就是运用到了递归的思想。 在程序设计中&#xff0c;递归是一个很有…

【Canal源码分析】Sink及Store工作过程

一、序列图 二、源码分析 2.1 Sink Sink阶段所做的事情&#xff0c;就是根据一定的规则&#xff0c;对binlog数据进行一定的过滤。我们之前跟踪过parser过程的代码&#xff0c;发现在parser完成后&#xff0c;会把数据放到一个环形队列TransactionBuffer中&#xff0c;也就是这…

博客园修改页面显示样式css

博客园修改页面显示样式css 一、总结 二、 博客园修改页面显示样式css 1、点管理 2、点设置 3、在页面定制css代码中加入你想要改变样式的css代码即可 不会写css的下面有代码示例&#xff0c;直接复制粘贴放到页面定制css代码位置即可 三、代码 1 #cnblogs_post_body h3 {2 …