zoukankan      html  css  js  c++  java
  • Java_Collections工具类

    Collections 工具类

      * Collection与Collections区别

        Collection 接口,(大部分集合类的实现接口)

        Collections 工具类(针对列表)

            * Collections工具类常用方法  

       1.父类的引用指向子类的对象(复习)
    
        2.sort(List list)排序
    
        3.sort(List list, Comparator comparator);排序
    
        4.binarySearch,搜索指定元素索引,前提列表必须有序
    
        5.reverse反转
    
       6.重新洗牌shuffle方法
    
        7.swap交换,交换两个索引位置元素,Collections.swap(list, 1, 2);

      * 测试Collections工具类方法代码:  

        
    package method;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;
    /***
     * 1.父类的引用指向子类的对象
     * 2.sort(List list)排序
     * 3.sort(List list, Comparator comparator);排序
     * 4.binarySearch,搜索指定元素索引,前提列表必须有序
     * 5.reverse反转
     * 6.重新洗牌shuffle
     * 7.swap交换,交换两个索引位置元素,Collections.swap(list, 1, 2);
     * @author Administrator
     *
     */
    public class CollectionsDemo {
        public static void main(String[] args) {
            List list=new ArrayList();
            
            //添加测试数据        
            list.add("a");
            list.add("b");
            list.add("d");
            list.add("c");
            list.add("e");
            
            System.out.println(Arrays.toString(list.toArray()));
            //sort排序,升序
            Collections.sort(list);
            
            System.out.println(Arrays.toString(list.toArray()));
            
            //使用sort降序排序
            Collections.sort(list, new Comparator<String>(){
    
                @Override
                public int compare(String o1, String o2) {
                    // TODO Auto-generated method stub
                    int result=o2.length()-o1.length();
                    int length=result>0?o2.length():o1.length();
                    
                    char[]a1=o1.toCharArray();
                    char[]a2=o2.toCharArray();
                    for(int i=0;i<length;i++){
                        if(a1[i]>a2[i]){
                            return -1;
                        }else if(a1[i]==a2[i]){
                            return 0;
                        }else{
                            return 1;
                        }
                    }
                    return result;
                }
            });
            
            System.out.println(Arrays.toString(list.toArray()));
            //二分法检测元素索引
            int indexResult = Collections.binarySearch(list, "c");
            
            System.out.println(indexResult);
            
            //reverse反转
            Collections.reverse(list);
            System.out.println(Arrays.toString(list.toArray()));
            
            //重新洗牌shuffle
            Collections.shuffle(list);
            System.out.println(Arrays.toString(list.toArray()));
            
            //swap交换,交换两个索引位置元素
            Collections.swap(list, 1, 2);
            System.out.println(Arrays.toString(list.toArray()));
        }
    }
    Collections常用方法测试

      * 模拟斗地主,发牌代码

        
    package method;
    
    import java.util.ArrayList;
    import java.util.Collections;
    
    /***
     * 模拟斗地主,洗牌
     * @author Administrator
     *
     */
    public class Collections_card {
        
        public static void main(String[] args) {
            ArrayList cards = new ArrayList();
            
            ArrayList play1 = new ArrayList();
            ArrayList play2 = new ArrayList();
            ArrayList play3 = new ArrayList();
            
            ArrayList dipai = new ArrayList();
            //54张牌
            for(int i=0;i<54;i++){
                cards.add(i);
            }
            Collections.shuffle(cards);
            //三个玩家分牌
            for(int i=0;i<51;i+=3){
                play1.add(cards.get(i));
                play2.add(cards.get(i+1));
                play3.add(cards.get(i+2));
            }
            //底牌
            for(int i=51;i<54;i++){
                dipai.add(cards.get(i));
            }
            
            //输出检查效果
            System.out.println("玩家一:"+play1);
            System.out.println("玩家二:"+play2);
            System.out.println("玩家三:"+play3);
            System.out.println("底牌:"+dipai);
        }    
    }
    模拟斗地主发牌
  • 相关阅读:
    KVM克隆CentOS6虚拟机后无法启动
    Python socket网络模块
    LNMP的安装--详细版
    CentOS7 二进制安装MySQL5.6.42
    超越线程池:Java并发并没有你想的那么糟糕
    有哪些实用的计算机相关技能,可以在一天内学会?
    如何写出让hr一看就约你面试的简历
    五个最佳编程字体
    Eclipse 的 Debug 介绍与技巧
    Redis时延问题分析及应对
  • 原文地址:https://www.cnblogs.com/aihuadung/p/9319467.html
Copyright © 2011-2022 走看看