java入门第三季6.3章问题

来源:6-3 学生选课---获取 List 中课程的位置

lufarce

2015-11-22 15:26

问一下,indexOf(str)能查找到第一个str,那么如果一个List里有好几个同样的str,我应该怎么查找第二个、第三个……乃至于第五个?这种既不是第一个也不是最后一个的需求,应该怎么样满足?

写回答 关注

5回答

  • define_ray
    2017-08-27 13:28:29
    	/**
    	 * 查找第n个课程名出现的index
    	 * 
    	 * @param n
    	 */
    	public int search(int n) {
    		Course course = new Course();
    		course.name = console.next();
    		int index = -1;
    		if (ListToSelect.contains(course)) {
    			index = ListToSelect.indexOf(course);
    			while (n > 1) {
    				index = ListToSelect.subList(ListToSelect.indexOf(course) + 1, ListToSelect.size()).indexOf(course);
    				n--;
    			}
    		}
    		return index;
    	}


    define...

    随便写了写

    2017-08-27 13:29:39

    共 1 条回复 >

  • 阿莫林西
    2017-03-04 14:24:40

    一般先获取第一次出现的index,然后调用List的subList(fromIndex,toIndex)方法取得他的子序列,然后子序列再调用indexOf方法。可以用一个循环,设置一个变量记录查找的个数,达到个数的时候终止循环。

    define...

    上面都是扯淡,这个方法还行~

    2017-08-27 13:07:03

    共 1 条回复 >

  • 慕粉3858104
    2016-09-15 11:15:14

    你可以重新写一下indexof,比如在其中增加一个计数器,每次索引到值定对象就加一,直到计数值达到你想要找的个数,再将其索引位置值返回。

  • iceWang
    2016-04-02 20:11:29

    一个一个找,找到就记录位置,计数加一,最后根据计数返回要找的位置

  • 天启之魂
    2015-11-23 13:52:06

    java中提供给你方法了 你可以拿来直接用 如果没提供 你就应该自己去定义一个这样的方法了。。。

    加油 !方法很多,给你个思路,直接遍历集合 然后逐个判断如果元素相等,那么记录这个元素的位置,剩下的你还不会,那最好还是在吧基础复习一下。。。

Java入门第三季

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

409784 学习 · 4339 问题

查看课程

相似问题