zoukankan      html  css  js  c++  java
  • 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();
    
    } 
  • 相关阅读:
    ARM Security Technology
    《Linux/UNIX系统编程手册》第6章 进程
    Go 数组合并去重和排序
    Elasticsearch 删除数据
    Go常用排序算法
    Exception in window.onload: An error has occuredJSPlugin.3005
    基于Flask的 api(四)
    基于Flask的 api(三)
    判断json对象时JSONArray还是JSONObject
    基于Flask的 api(二)
  • 原文地址:https://www.cnblogs.com/tianxintian22/p/6735959.html
Copyright © 2011-2022 走看看