为了账号安全,请及时绑定邮箱和手机立即绑定

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:高等数学

正在回答

4 回答

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

1 回复 有任何疑惑可以回复我~

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

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

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

0 回复 有任何疑惑可以回复我~
#1

萝小卜卜

indexOf返回的是元素第一次出现的索引位置,lastIndexOf返回的是元素最后一次出现的索引位置,索引都是从第一个元素开始算的,不是说用lastIndexOf就从最后开始往前算。由于序列中只包含一个“高等数学”,所以不管是使用indexOf还是lastIndexOf,得到的索引值都是一样的。
2018-09-30 回复 有任何疑惑可以回复我~
#2

慕粉1350407054

索引位置是固定的,那是因为你只有一个高等数据的原因,你再后面再加一个高等数学,就会看到两个不一样等索引了。
2019-12-21 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409790    人
  • 解答问题       4340    个

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

进入课程

indexOf与lastindexOf问题??

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信