//买一副牌
    String[] num = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
    String[] color = {"方片","梅花","红桃","黑桃"};
    HashMap<Integer, String> hm = new HashMap<>();          //存储索引和扑克牌
    ArrayList<Integer> list = new ArrayList<>();               //存储索引
    int index = 0;                                          //索引的开始值
    for(String s1 : num) {
        for(String s2 : color) {
            hm.put(index, s2.concat(s1));                   //将索引和扑克牌添加到HashMap中
            list.add(index);                                //将索引添加到ArrayList集合中
            index++;
        }
    }
    hm.put(index, "小王");
    list.add(index);
    index++;
    hm.put(index, "大王");
    list.add(index);
    //洗牌
    Collections.shuffle(list);
    //发牌
    TreeSet<Integer> gaojin = new TreeSet<>();
    TreeSet<Integer> longwu = new TreeSet<>();
    TreeSet<Integer> me = new TreeSet<>();
    TreeSet<Integer> dipai = new TreeSet<>();    for(int i = 0; i < list.size(); i++) {
        if(i >= list.size() - 3) {
            dipai.add(list.get(i));                         //将list集合中的索引添加到TreeSet集合中会自动排序
        }else if(i % 3 == 0) {
            gaojin.add(list.get(i));
        }else if(i % 3 == 1) {
            longwu.add(list.get(i));
        }else {
            me.add(list.get(i));
        }
    }    //看牌
    lookPoker("A", gaojin, hm);
    lookPoker("B", longwu, hm);
    lookPoker("C", me, hm);
    lookPoker("底牌", dipai, hm);}public static void lookPoker(String name,TreeSet<Integer> ts,HashMap<Integer, String> hm) {
    System.out.print(name + "的牌是:");
    for (Integer index : ts) {
        System.out.print(hm.get(index) + " ");
    }    System.out.println();
------------------------------------分割线---------------------------------------------------------
请问arraylist的索引值跟hashmap的索引值一样就能够通过索引值获取到hashmap的key跟value呢??  HashMap<Integer, String> hm = new HashMap<>();          //存储索引和扑克牌
    ArrayList<Integer> list = new ArrayList<>();               //存储索引