从List中找到某个数在这个List第几位

起床搬砖 2019-03-14 04:21:08
如题,假设一个List为{1,2,3,1,1,2,4,5,2,6,8,2}

我使用List.indexof(1)能找到第一个1在第0位

但是我想找第二个1的时候或者第三个1甚至更后面的时候就找不到了

所以想请求大神帮忙封装个方法

a为要找的数
b为找第几个a
最后返回要找的数在第几位
public static int get_num(List list,int a,int b) {
}

谢谢了
...全文
3664 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
起床搬砖 2019-03-14
  • 打赏
  • 举报
回复
谢谢各位的解答 已经能达到我想要的效果了
淡定的蜗牛 2019-03-14
  • 打赏
  • 举报
回复
检索字符串中的关键词方式有哪些? 可以看看这个。 希望对楼主有所帮助
stacksoverflow 2019-03-14
  • 打赏
  • 举报
回复

	public static int get_num(List list,int a,int b) {
		int pos = -1;
		for(int i = 0; i <= list.size() && b > 0; i++) {
			if(list.get(i).equals(a)) {
				pos = i;
				b--;
			}
		}
		return pos;
	}
qq_39936465 2019-03-14
  • 打赏
  • 举报
回复

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class test11 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		List<Integer> list1=new ArrayList<Integer>(Arrays.asList(1,2,3,1,1,2,4,5,2,6,8,2));
		List<Integer> list2=new ArrayList<Integer>();
		list2=get_num(list1, 1);
		System.out.println("1所在位置");
		for (int i:list2) {
			System.out.print((i+1)+"\t");
		}
 }

	public static List<Integer> get_num(List<Integer> list, int a) {
		List<Integer> list1=new ArrayList<Integer>();
		for(int i=0;i<list.size();i++) {
			if(list.get(i).equals(a)) {
				list1.add(i);
			}
		}
		return list1;
	}	
}

运行结果: 1所在位置 1 4 5
akxj2022 2019-03-14
  • 打赏
  • 举报
回复


public class TestUtil {

    /**
     * @param list
     * @param a    需要查找的元素
     * @param b    需要查找第几个元素
     * @return 返回元素在数组中的位置,用list[i]可以拿到
     */
    public static int get_num(String[] list, String a, int b) {
        if (list.length > 0 && b > 0) {
            for (int i = 0; i < list.length; i++) {
                if (list[i].equals(a)) {
                    b--;
                }
                if (b == 0) {
                    return i;
                }
            }
        }
        return -1;
    }


    public static void main(String[] args) throws Exception {
        String[] param = {"H", "E", "L", "L", "O", ",", "J", "A", "V", "A", "!"};
        System.out.println("第二个 A 出现的位置是:" + get_num(param, "A", 2));
        System.out.println("list[i]:" + param[get_num(param, "A", 2)]);
    }
}
输出结果:

第二个 A 出现的位置是:9
list[i]:A
931828653 2019-03-14
  • 打赏
  • 举报
回复
你把它循环放入一个新List中,拿当前值去跟新List做比较
usecf 2019-03-14
  • 打赏
  • 举报
回复
package com.ar.tt;

import java.util.ArrayList;
import java.util.List;

public class ListTest {

public static void main(String[] args) {
// TODO Auto-generated method stub

int index = 0;
String tag = "1,2,3,1,1,2,4,5,2,6,8,2";
String[] tags = tag.split(",");
List<String> list = new ArrayList();
for(int i=0; i<tags.length;i++)
{
list.add(tags[i]);
}

//System.out.println(list);
get_num(list,"1",index);
}
//a为要找的数
//b为找第几个a
public static int get_num(List list,String a,int b)
{
for(int i=0; i<list.size();i++)
{
if(list.get(i).equals(a))
{
b = i;
System.out.println("查找数a:"+a+";索引:"+b);
}
}
return b;
}

}

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧