Java—集合框架 List的 indexOf()、lastIndexOf()
- 集合中某个元素出现的位置—List的indexOf(),lastIndexOf()
indexOf(Object obj)方法的实现机制是从序列(List)的第0个元素开始依次循环,并且调用每个元素的equals()方法和参数对象进行比较,如果某一个元素的equals()方法返回值为true,那么就把当前元素的索引位置作为结果返回。假如序列中有多个重复的元素,只返回这个重复的元素第一次出现时所在的索引位置的值。
lastIndexOf(Object obj)方法,与indexOf()方法相反,它返回的是某个元素最后一次出现的索引位置的值,也就是它会从序列的队尾向队头进行遍历。
以上两个方法的参数对象如果在序列中都没有出现的话,那么这两个方法都会返回-1。
SetTest类部分示例代码:
package com.test.collection; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner; public class SetTest {
public List<Course> coursesToSelect;
private Scanner console;
public static Student student;
public SetTest() {
coursesToSelect = new ArrayList<Course>();
console = new Scanner(System.in);
}
public void testAdd() {
Course c1 = new Course("1", "数据结构");//创建课程对象的实例
Course c2 = new Course("2", "C语言");
Course c3 = new Course("3", "离散数学");
Course c4 = new Course("4", "汇编语言");
Course c5 = new Course("5", "数据结构");
Course[] course = {c1, c2, c3, c4, c5};
coursesToSelect.addAll(Arrays.asList(course));
}
public void testListContains() {
System.out.println("请输入课程名称:");
String courseName = console.next();
Course c3 = new Course();
c3.name = courseName;
System.out.println("课程【" + c3.name + "】是否在备选课程中:" + coursesToSelect.contains(c3));
if (coursesToSelect.contains(c3)) {
System.out.println("课程:" + c3.name + "第一次出现的索引位置为:" + coursesToSelect.indexOf(c3));
System.out.println("课程:" + c3.name + "最后一次出现的索引位置为:" + coursesToSelect.lastIndexOf(c3));
}
} public static void main(String[] args) {
SetTest st = new SetTest();
st.testAdd();
st.testListContains(); }
Java—集合框架 List的 indexOf()、lastIndexOf()的更多相关文章
- 【JAVA集合框架之List】
一.List接口概述. List有个很大的特点就是可以操作角标. 下面开始介绍List接口中相对于Collection接口比较特别的方法.在Collection接口中已经介绍的方法此处就不再赘述. 1 ...
- 浅入深出之Java集合框架(下)
Java中的集合框架(下) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,哈哈这篇其实也还是基础,惊不惊喜意不意外 ̄▽ ̄ 写文真的好累,懒得写了.. ...
- Java集合框架之四大接口、常用实现类
Java集合框架 <Java集合框架的四大接口> Collection:存储无序的.不唯一的数据:其下有List和Set两大接口. List:存储有序的.不唯一的数据: Set:存储无序的 ...
- Java集合框架知多少——干货!!!
Java集合框架的组成 注意:四个接口的区别 ① Collection:存储无序的.不唯一的数据: ② List:存储有序的.不唯一的数据: ③ Set:存储无序的.唯一的数据: ④ Map:以键值对 ...
- 知识点:Java 集合框架图
知识点:Java 集合框架图 总结:Java 集合进阶精讲1 总结:Java 集合进阶精讲2-ArrayList Java集合框架图 我们经常使用的Arrayist.LinkedList继承的关系挺复 ...
- JAVA—集合框架
ref:https://blog.csdn.net/u012961566/article/details/76915755 https://blog.csdn.net/u011240877/artic ...
- 一起学 Java集合框架、数据结构、泛型
一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...
- java集合框架——List
一.List接口概述 List有个很大的特点就是可以操作角标. 下面开始介绍List接口中相对于Collection接口比较特别的方法.在Collection接口中已经介绍的方法此处就不再赘述. 1. ...
- Java 集合框架_上
集合框架被设计成要满足以下几个目标. 该框架必须是高性能的.基本集合(动态数组,链表,树,哈希表)的实现也必须是高效的. 该框架允许不同类型的集合,以类似的方式工作,具有高度的互操作性. 对一个集合的 ...
随机推荐
- Android 生成xml文件及xml的解析
1.生成xml文件的两种方式 (1)采用拼接的方式生成xml(不推荐使用) (2)利用XmlSerializer类生成xml文件 package com.example.lucky.test52xml ...
- 老男孩python作业7-开发一个支持多用户在线的FTP程序
作业6:开发一个支持多用户在线的FTP程序 要求: 用户加密认证 允许同时多用户登录 每个用户有自己的家目录 ,且只能访问自己的家目录 对用户进行磁盘配额,每个用户的可用空间不同 允许用户在ftp s ...
- C++_类和动态内存分配4-有关返回对象的说明
返回方式: 返回指向对象的引用: 指向对象的const引用: const对象: =============================================== 返回指向const对象 ...
- In linux shell, How to cp/rm files by time?
find /path/to/folder/ -mtime 1 -exec rm {} \; // Deletes all Files modified yesterday
- ES6问题记录--Promise
在读[阮一峰]的 ES6 入门文档的时候,有一段代码是这样的. 文章中,还有一段是这样写的 所以,Promise.resolve(3).finally(()=>{}),解析出来的resolve ...
- [转] Spring Boot实战之Filter实现使用JWT进行接口认证
[From] http://blog.csdn.net/sun_t89/article/details/51923017 Spring Boot实战之Filter实现使用JWT进行接口认证 jwt(j ...
- rem.js的用法及在浏览器端的适配
首先介绍下自己,我是从后端转前端,对于前端的见识还不深望各位全当一个新手自述....... 随着移动设配的更新换代,市场上涌现了大量的非主流设备分辨率,比如华为手机...... 更新换代快的大前提下自 ...
- 深度学习(五)基于tensorflow实现简单卷积神经网络Lenet5
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/8954892.html 参考博客:https://blog.csdn.net/u01287127 ...
- CSS3实现鼠标悬停扩展效果
我们在做导航标签的时候,有时会出现空间过于拥挤需要隐藏部分内容的情况,所以在这里我自己写了一个鼠标悬停显示扩展内容的效果,如下图所示. 总的来说效果还是比较好实现,但是比较头疼的是三角部分使用了伪元素 ...
- linux下统计文本行数的各种方法(二)
上一篇讲的都是统计单个文件的方法,直接在命令行执行就可以.现在试试脚本的方式,统计多个文件的行数 一.统计目录下所有文件的文件数及所有行数 脚本暂时命名为count.sh,代码如下: #!/bin/b ...