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

java入门第三季6.3章问题

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

正在回答

5 回答

	/**
	 * 查找第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;
	}


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

define_ray

随便写了写
2017-08-27 回复 有任何疑惑可以回复我~

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

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

define_ray

上面都是扯淡,这个方法还行~
2017-08-27 回复 有任何疑惑可以回复我~

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

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

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

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

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

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

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

举报

0/150
提交
取消

java入门第三季6.3章问题

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