在Java中查找ArrayList中循环对象的索引

在Java中查找ArrayList中循环对象的索引,java,arraylist,Java,Arraylist,IndexOf返回对象在ArrayList中的第一次出现。 假设我的代码是一个扑克玩家的手,我想知道他手中牌的索引。心脏的王牌在位置1和4。但对于心脏血管紧张素转换酶的出现,IndexOf返回位置1和1 问题: 1是否有其他方式获得价值? 2是否应该使用其他数据结构,如HashMap或其他数据结构?List.indesOf方法将返回列表的第一个匹配项。但您的要求可以通过以下方式实现 public class NewMain { public static void main(String

IndexOf返回对象在ArrayList中的第一次出现。 假设我的代码是一个扑克玩家的手,我想知道他手中牌的索引。心脏的王牌在位置1和4。但对于心脏血管紧张素转换酶的出现,IndexOf返回位置1和1

问题: 1是否有其他方式获得价值?
2是否应该使用其他数据结构,如HashMap或其他数据结构?

List.indesOf方法将返回列表的第一个匹配项。但您的要求可以通过以下方式实现

public class NewMain {
    public static void main(String[] args) {
        ArrayList<String> array = new ArrayList<>();
        array.add("Ace of Hearts");
        array.add("King of Clubs");
        array.add("Three of Spade");
        array.add("Ace of Hearts");
        array.add("Ten of Clubs");
        for(String s: array)
            System.out.println(s+"at postion: "+array.indexOf(s));
    }
}

这将解决您的问题:

    import java.util.ArrayList;

    public class NewMain {
        public static void main(String[] args) {
            ArrayList<String> array = new ArrayList<>();
            array.add("Ace of Hearts");
            array.add("King of Clubs");
            array.add("Three of Spade");
            array.add("Ace of Hearts");
            array.add("Ten of Clubs");
            for(int i =0;i<array.size();i++)
                System.out.println(array.get(i)+"at postion: "+i);
        }
    }

+if的简单组合?这能回答你的问题吗?这回答了你的问题吗?这将进一步增加复杂性,因为玩家的每一回合都会调用indexOfAll。因为卡的位置是保持不变的,所以我会坚持使用for循环。无论如何谢谢你!!
 public class NewMain {
        public static void main(String[] args) {
            String abc="Ace of Hearts";
            List<String> array = new ArrayList<String>();
            array.add("Ace of Hearts");
            array.add("King of Clubs");
            array.add("Three of Spade");
            array.add("Ace of Hearts");
            array.add("Ten of Clubs");
            List<Integer> indexList= indexOfAll(abc,array);
            System.out.println(indexList);

        }

        static <T> List<Integer> indexOfAll(T obj, List<T> list) {
            final List<Integer> indexList = new ArrayList<Integer>();
            for (int i = 0; i < list.size(); i++) {
                if (obj.equals(list.get(i))) {
                    indexList.add(i);
                }
            }
            return indexList;
        }