问答详情
源自:6-3 学生选课---获取 List 中课程的位置

indexOf与lastindexOf问题??

我两中方法都试过了,但是被没有像视频中的老师说的那样一个正序一个倒序,两个索引结果给的位置一样,是我写错代码,还是怎样呢,有人知道嘛?


if(coursesToSelect.contains(course2))
         /* //正序数
          System.out.println("课程:"+course2.name+"的索引位置"+
            coursesToSelect.indexOf(course2));*/
        //倒序数
            System.out.println("课程:"+course2.name+"的索引位置"+
                    coursesToSelect.lastIndexOf(course2));


结果是一样的,都为:

  • 添加课程1:数据结构
    添加课程2:C语言
    添加了两门课程3:数学分析;4:高等数学
    添加了两门课程5:高等代数;6:Java语言
    取得课程C语言
    备选课程中是否包含:C语言,true
    请输入课程名称:
    高等数学
    新创建课程:高等数学
    备选课程中是否包含课程:高等数学,true
    课程:高等数学的索引位置5
    有如下课程可选
    课程2:C语言
    课程1:数据结构
    课程5:高等代数
    课程6:Java语言
    课程3:数学分析
    课程4:高等数学

提问者:何必朝朝暮暮_emIZ39 2018-09-18 16:13

个回答

  • Joker_Ye
    2019-03-11 17:28:42

    序号是固定的,indexOf是从从前往后第一次出现的序号,lastindexOf的从前往后最后一次出现的序号,由于序列中只有一个高等数学所以得到的索引值是一样的

  • 何必朝朝暮暮_emIZ39
    2018-09-25 16:58:49

    没明白,就那我写的这个例子,顺序

    课程2:C语言
    课程1:数据结构
    课程5:高等代数
    课程6:Java语言
    课程3:数学分析
    课程4:高等数学

    高等数学的索引位置  正序不应该为5,倒叙为0吗???

  • 慕粉7269117
    2018-09-21 14:31:14

    倒序的意思是程序遍历的起点从后面开始,如果你有两个元素是相同的,一个在2位置,一个在6位置,那么你使用indexOf,程序就从正序也就是0位置开始查找,找到第一个匹配的元素,返回位置2;如果你使用lastIndexOf,程序就从倒序也就是最后一个开始查找,找到第一个匹配的元素,返回位置6;如果查找的元素只有一个,那么无论正序还是倒序查找,始终只有一个匹配的值,返回的位置也就都想通了。

  • 慕粉7269117
    2018-09-21 14:31:08

    倒序的意思是程序遍历的起点从后面开始,如果你有两个元素是相同的,一个在2位置,一个在6位置,那么你使用indexOf,程序就从正序也就是0位置开始查找,找到第一个匹配的元素,返回位置2;如果你使用lastIndexOf,程序就从倒序也就是最后一个开始查找,找到第一个匹配的元素,返回位置6;如果查找的元素只有一个,那么无论正序还是倒序查找,始终只有一个匹配的值,返回的位置也就都想通了。