zoukankan      html  css  js  c++  java
  • Collection_Compare

    冒泡

    package com.bjsxt.sort.bubble;
    
    import java.util.Arrays;
    
    
    public class BubbleSort1 {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            int[] arr ={9,8,7,6,5};        
            sort(arr);
            
        }
        //第一版本,很简单
        public static void sort(int[] arr){
            int len =arr.length;
            for(int j=0;j<len-1;j++){
                System.out.println("第"+(j+1)+"趟");
                for(int i=0;i<len-1;i++){
                    System.out.print("第"+(i+1)+"次");
                    if(arr[i]>arr[i+1]){
                        int temp = arr[i];
                        arr[i] =arr[i+1];
                        arr[i+1] =temp;
                    }
                    System.out.println(Arrays.toString(arr));
                }
            }
        }
        public static void sortSecond(int[] arr){
            System.out.println("第一趟");
            for(int i=0;i<arr.length-1;i++){
                System.out.print("第"+(i+1)+"次");
                if(arr[i]>arr[i+1]){
                    int temp = arr[i];
                    arr[i] =arr[i+1];
                    arr[i+1] =temp;
                }
                System.out.println(Arrays.toString(arr));
            }
            System.out.println("第二趟");
            for(int i=0;i<arr.length-1;i++){
                System.out.print("第"+(i+1)+"次");
                if(arr[i]>arr[i+1]){
                    int temp = arr[i];
                    arr[i] =arr[i+1];
                    arr[i+1] =temp;
                }
                System.out.println(Arrays.toString(arr));
            }
            System.out.println("第三趟");
            for(int i=0;i<arr.length-1;i++){
                System.out.print("第"+(i+1)+"次");
                if(arr[i]>arr[i+1]){
                    int temp = arr[i];
                    arr[i] =arr[i+1];
                    arr[i+1] =temp;
                }
                System.out.println(Arrays.toString(arr));
            }
            System.out.println("第四趟");
            for(int i=0;i<arr.length-1;i++){
                System.out.print("第"+(i+1)+"次");
                if(arr[i]>arr[i+1]){
                    int temp = arr[i];
                    arr[i] =arr[i+1];
                    arr[i+1] =temp;
                }
                System.out.println(Arrays.toString(arr));
            }
        
        }
        
        
        public static void sortFirst(int[] arr){
            System.out.println("第一趟");
            for(int i=0;i<arr.length-1;i++){
                System.out.print("第"+(i+1)+"次");
                if(arr[i]>arr[i+1]){
                    int temp = arr[i];
                    arr[i] =arr[i+1];
                    arr[i+1] =temp;
                }
                System.out.println(Arrays.toString(arr));
            }
            
            /*
            //第一趟 第一次
            System.out.println("第一趟 第一次");
            int i=0;
            if(arr[i]>arr[i+1]){
                int temp = arr[i];
                arr[i] =arr[i+1];
                arr[i+1] =temp;
            }
            System.out.println(Arrays.toString(arr));
            System.out.println("第一趟 第二次");
            i++;
            if(arr[i]>arr[i+1]){
                int temp = arr[i];
                arr[i] =arr[i+1];
                arr[i+1] =temp;
            }
            System.out.println(Arrays.toString(arr));
            
            System.out.println("第一趟 第三次");
            i++;
            if(arr[i]>arr[i+1]){
                int temp = arr[i];
                arr[i] =arr[i+1];
                arr[i+1] =temp;
            }
            System.out.println(Arrays.toString(arr));
            
            System.out.println("第一趟 第四次");
            i++;
            if(arr[i]>arr[i+1]){
                int temp = arr[i];
                arr[i] =arr[i+1];
                arr[i+1] =temp;
            }
            System.out.println(Arrays.toString(arr));
            
            */
        }
    
    }
    package com.bjsxt.sort.bubble;
    
    import java.util.Arrays;
    
    public class BubbleSort2 {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            int[] arr ={9,8,7,6,5};        
            sort(arr);
        }
        //第二版本,减少每一趟的次数
        public static void sort(int[] arr){
                int len =arr.length;
                for(int j=0;j<len-1;j++){ //趟数
                    System.out.println("第"+(j+1)+"趟");
                    for(int i=0;i<len-1-j;i++){ //次数
                        System.out.print("第"+(i+1)+"次");
                        if(arr[i]>arr[i+1]){
                            int temp = arr[i];
                            arr[i] =arr[i+1];
                            arr[i+1] =temp;
                        }
                        System.out.println(Arrays.toString(arr));
                    }
                }
            }
    
    }
    package com.bjsxt.sort.bubble;
    
    import java.util.Arrays;
    
    /**
     * 最终版本:考虑存在顺序
     * @author Administrator
     *
     */
    public class BubbleSort {
    
        /**
         * @param args
         */
        public static void main(String[] args) {        
            int[] arr ={1,2,9,3,4};
            sort1(arr);
    
            System.out.println("==========final============");
            arr =new int[]{9,1,2,3,4};
            sortFinal(arr);
        }
        //第二版本,减少每一趟的次数
        public static void sortFinal(int[] arr){
                boolean sorted= true;
                int len =arr.length;
                for(int j=0;j<len-1;j++){ //趟数
                    sorted =true; //假定有序
                    for(int i=0;i<len-1-j;i++){ //次数
                        if(arr[i]>arr[i+1]){
                            int temp = arr[i];
                            arr[i] =arr[i+1];
                            arr[i+1] =temp;
                            sorted =false; //假定失败
                        }
                        System.out.println(Arrays.toString(arr));
                    }
                    if(sorted){ //减少趟数
                        break;
                    }
                }
            }
    
        //第二版本,减少每一趟的次数
        public static void sort1(int[] arr){
                int len =arr.length;
                for(int j=0;j<len-1;j++){ //趟数
                    System.out.println("第"+(j+1)+"趟");
                    for(int i=0;i<len-1-j;i++){ //次数
                        System.out.print("第"+(i+1)+"次");
                        if(arr[i]>arr[i+1]){
                            int temp = arr[i];
                            arr[i] =arr[i+1];
                            arr[i+1] =temp;
                        }
                        System.out.println(Arrays.toString(arr));
                    }
                }
            }
    
    }

    引用数据类型:

    1.整数小数Integer Float Double直接比较基本数据类型的大小

    2.比较unicode码之差

    3.字符串:

    package com.bjsxt.sort.innerType;
    /**
     * 内置引用数据类型(常用)的比较
     * @author Administrator
     *
     */
    public class Demo01 {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            Integer  a ; //根据基本数据类型大小
            Character ch; //根据Unicode编码顺序
            String str="abc"; //如果其中一个是例外一个起始开始的子串,返回长度之差
            String str2 ="abcd123";  //否则返回第一个不相等的unicode码之差
            System.out.println(str.compareTo(str2));
            str ="abc";
            str2 ="aad";
            System.out.println(str.compareTo(str2));
            
            
            java.util.Date d ;  //根据日期的长整形数比较
        }
    
    }

    字符串的冒泡:

    /**
         * @param args
         */
        public static void main(String[] args) {
            String[] arr ={"a","abcd","abc","def"};
            //从到小排序 降序
            boolean sorted= true;
            int len =arr.length;
            for(int j=0;j<len-1;j++){ //趟数
                sorted =true; //假定有序
                for(int i=0;i<len-1-j;i++){ //次数
                    if(((Comparable)arr[i]).compareTo(arr[i+1])<0){
                        String temp = arr[i];
                        arr[i] =arr[i+1];
                        arr[i+1] =temp;
                        sorted =false; //假定失败
                    }
                }
                if(sorted){ //减少趟数
                    break;
                }
            }
            
            System.out.println(Arrays.toString(arr));
        }

    时间的冒泡:

    /**
         * @param args
         */
        public static void main(String[] args) {
            Date[] arr =new Date[3];
            arr[0] =new Date();
            arr[1] =new Date(System.currentTimeMillis()-1000*60*60);
            arr[2] =new Date(System.currentTimeMillis()+1000*60*60);
            //降序
            
            //从大到小排序 降序
                boolean sorted= true;
                int len =arr.length;
                for(int j=0;j<len-1;j++){ //趟数
                    sorted =true; //假定有序
                    for(int i=0;i<len-1-j;i++){ //次数
                        if(((Comparable)arr[i]).compareTo(arr[i+1])<0){
                            Date temp = arr[i];
                            arr[i] =arr[i+1];
                            arr[i+1] =temp;
                            sorted =false; //假定失败
                        }
                    }
                    if(sorted){ //减少趟数
                        break;
                    }
                }
                
                System.out.println(Arrays.toString(arr));
        }

    封装+泛型之后:

    package com.bjsxt.sort.innerType;
    
    import java.util.Comparator;
    import java.util.List;
    
    
    
    /**
     * 排序
     * @author Administrator
     *
     */
    public class Utils {
        /**
         * List的排序+比较器
         * @param list
         * @param com
         */
        public static  <T> void sort(List<T> list,Comparator<T> com){
            //第一步:转成数组
            Object[] arr =list.toArray();
            sort(arr,com);
            //第二步:改变容器中对应的值
            for(int i=0;i<arr.length;i++){
                list.set(i, (T)(arr[i]));
            }
        }
        
        
        /**
         * 数组的排序 (降序)+Comparator接口
         * @param arr
         */
        public static <T> void sort(Object[] arr,Comparator<T> com){
            //从大到小排序 降序
                boolean sorted= true;
                int len =arr.length;
                for(int j=0;j<len-1;j++){ //趟数
                    sorted =true; //假定有序
                    for(int i=0;i<len-1-j;i++){ //次数
                        if(com.compare((T)arr[i], (T)arr[i+1])<0){
                            Object temp = arr[i];
                            arr[i] =arr[i+1];
                            arr[i+1] =temp;
                            sorted =false; //假定失败
                        }
                    }
                    if(sorted){ //减少趟数
                        break;
                    }
                }
        }
        
        
        
        /**
         * 容器排序 (使用泛型方法)
         */
        public static <T extends Comparable<T>> void sort(List<T> list){
            //第一步:转成数组
            Object[] arr =list.toArray();
            sort(arr);
            //第二步:改变容器中对应的值
            for(int i=0;i<arr.length;i++){
                list.set(i, (T)(arr[i]));
            }
            
        }
        
        
        /**
         * 数组排序 (使用泛型方法)
         */
        public static <T extends Comparable<T>> void sort(T[] arr){
            //从大到小排序 降序
            boolean sorted= true;
            int len =arr.length;
            for(int j=0;j<len-1;j++){ //趟数
                sorted =true; //假定有序
                for(int i=0;i<len-1-j;i++){ //次数
                    if(((Comparable)arr[i]).compareTo(arr[i+1])<0){
                        T temp = arr[i];
                        arr[i] =arr[i+1];
                        arr[i+1] =temp;
                        sorted =false; //假定失败
                    }
                }
                if(sorted){ //减少趟数
                    break;
                }
            }
        }    
        
        /**
         * 数组的排序 (降序)
         * @param arr
         */
        public static void sort(Object[] arr){
            //从大到小排序 降序
            boolean sorted= true;
            int len =arr.length;
            for(int j=0;j<len-1;j++){ //趟数
                sorted =true; //假定有序
                for(int i=0;i<len-1-j;i++){ //次数
                    if(((Comparable)arr[i]).compareTo(arr[i+1])<0){
                        Object temp = arr[i];
                        arr[i] =arr[i+1];
                        arr[i+1] =temp;
                        sorted =false; //假定失败
                    }
                }
                if(sorted){ //减少趟数
                    break;
                }
            }
            
        }
        
        
    }

    实例:

    package com.bjsxt.sort.innerType;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Date;
    import java.util.List;
    
    public class Demo04 {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            Date[] arr =new Date[3];
            arr[0] =new Date();
            arr[1] =new Date(System.currentTimeMillis()-1000*60*60);
            arr[2] =new Date(System.currentTimeMillis()+1000*60*60);
            Utils.sort(arr); //降序
            System.out.println(Arrays.toString(arr));
            
            
            //字符串
            String[] arr2 ={"a","abcd","abc","def"};
            Utils.sort(arr2);
            System.out.println(Arrays.toString(arr2));
            
            
            System.out.println("==========List排序===========");
            //存放容器中
            List<String> list =new ArrayList<String>();
            list.add("a");
            list.add("abcd");
            list.add("abc");
            list.add("def");
            Utils.sort(list);
            System.out.println(list);
            
            
            
            
            System.out.println("==========使用Comparator 排序数组===============");
            arr2 =new String[]{"a","abcd","abc","def"};
            Utils.sort(arr2,new StringComp());
            System.out.println(Arrays.toString(arr2));
            
            System.out.println("==========List排序+比较器===========");
            list =new ArrayList<String>();
            list.add("a");
            list.add("abcd");
            list.add("abc");
            list.add("def");
            Utils.sort(list,new StringComp());
            System.out.println(list);
            
        }
    
    }

    方法而:实现java.util.Comparator接口

    package com.bjsxt.sort.innerType;
    /**
     * 排序规则的业务类
     * @author Administrator
     *
     */
    public class StringComp  implements java.util.Comparator<String>{
        
        /**
         * 按长度比较大小 
         * 正数 >
         * 负数 <
         * 0 ==
         */
        @Override
        public int compare(String o1, String o2) {
            int len1 =o1.length();
            int len2 =o2.length();        
            return -(len1-len2);
        }
        
    
    }
    package com.bjsxt.sort.innerType;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    
    /**
     * 使用Collections对容器的比较
     * 1、 public static <T> void sort(List<T> list, Comparator<? super T> c)  
     * 2、public static <T extends Comparable<? super T>> void sort(List<T> list)  
     * void sort(List<T> list)
     * @author Administrator
     *
     */
    public class Demo05 {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            List<String> list =new ArrayList<String>();
            list.add("a");
            list.add("abcd");
            list.add("abc");
            list.add("def");
            Collections.sort(list,new StringComp());
            System.out.println(list);
            
            
            list =new ArrayList<String>();
            list.add("a");
            list.add("abcd");
            list.add("abc");
            list.add("def");
            Collections.sort(list);
            System.out.println(list);
            
            
        }
    
    }

    新闻条目的排序:

    package com.bjsxt.sort.refType;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     * 新闻条目实体类
     * @author Administrator
     *
     */
    public class NewsItem implements java.lang.Comparable<NewsItem>{
        //标题
        private String title;
        //点击量
        private int hits;
        //时间
        private Date pubTime;
        public NewsItem() {
        }
        
        
        public NewsItem(String title, int hits, Date pubTime) {
            super();
            this.title = title;
            this.hits = hits;
            this.pubTime = pubTime;
        }
    
    
        public String getTitle() {
            return title;
        }
        public void setTitle(String title) {
            this.title = title;
        }
        public int getHits() {
            return hits;
        }
        public void setHits(int hits) {
            this.hits = hits;
        }
        public Date getPubTime() {
            return pubTime;
        }
        public void setPubTime(Date pubTime) {
            this.pubTime = pubTime;
        }
    
        //时间降序 +点击量升序+标题降序
        @Override
        public int compareTo(NewsItem o) {
            int result =0;
            //比较 时间
            result =-this.pubTime.compareTo(o.pubTime); //降序
            if(0==result){ //时间相同
                //点击量 
                result =this.hits-o.hits; //升序
                if(0==result){ //点击量相同
                     //标题
                    result=-this.title.compareTo(o.title);//降序
                }
            }        
            
            return result;
        }
        
        @Override
        public String toString() {
            StringBuilder sb =new StringBuilder();
            sb.append("标题:").append(this.title);
            sb.append(",时间:").append(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.pubTime));
            sb.append(",点击量:").append(this.hits).append("
    ");
            return sb.toString();
        }
    
        
    }
    package com.bjsxt.sort.refType;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Date;
    import java.util.List;
    
    import com.bjsxt.sort.innerType.Utils;
    
    /**
     * 使用Collections
     * @author Administrator
     *
     */
    public class NewsItemApp {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            List<NewsItem> news=new ArrayList<NewsItem>();
            news.add(new NewsItem("美国后怕了,逃跑了悲剧了",50,new Date(System.currentTimeMillis()-1000*60*60)));
            news.add(new NewsItem("中国登上钓鱼岛了,全国欢呼了",100,new Date()));
            news.add(new NewsItem("小日本终于听话了,泪流满面笑了",60,new Date(System.currentTimeMillis()-1000*60*60)));
            System.out.println("排序前:"+news);        
            //排序
            //Collections.sort(news);    
            Utils.sort(news);
            System.out.println("排序后"+news);
            
            
            
        }
    
    }

    商品的排序:

    package com.bjsxt.sort.refType;
    /**
     * 实体类
     * @author Administrator
     *
     */
    public class Goods {
        //商品名称
        private String name;
        //价格
        private double price;
        //收藏量
        private int fav;
        public Goods() {
            // TODO Auto-generated constructor stub
        }
        
        
        
        public Goods(String name, double price, int fav) {
            super();
            this.name = name;
            this.price = price;
            this.fav = fav;
        }
    
    
    
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public double getPrice() {
            return price;
        }
        public void setPrice(double price) {
            this.price = price;
        }
        public int getFav() {
            return fav;
        }
        public void setFav(int fav) {
            this.fav = fav;
        }
        
        
        @Override
        public String toString() {
            return "商品名:"+name+",收藏量"+this.fav+",价格:"+this.price+"
    ";
        }
    }
    package com.bjsxt.sort.refType;
    /**
     * 按价格排序的业务类 (降序)
     * @author Administrator
     *
     */
    public class GoodsPriceComp implements java.util.Comparator<Goods> {
    
        @Override
        public int compare(Goods o1, Goods o2) {
            return -(o1.getPrice()-o2.getPrice()>0?1:(o1.getPrice()==o2.getPrice()?0:-1));
        }
    
    }
    package com.bjsxt.sort.refType;
    /**
     * 按收藏量排序的业务类 (升序)
     * @author Administrator
     *
     */
    public class GoodsFavComp implements java.util.Comparator<Goods> {
    
        @Override
        public int compare(Goods o1, Goods o2) {
            return o1.getFav()-o2.getFav();
        }
    
    }
    package com.bjsxt.sort.refType;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    
    public class GoodsApp {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            List<Goods> list =new ArrayList<Goods>();
            list.add(new Goods("老马视频",100,2000));
            list.add(new Goods("老高视频",50,2000));
            list.add(new Goods("老裴视频",1000,1000));
            System.out.println("排序前:"+list);
        //    Collections.sort(list,new GoodsPriceComp());
            Collections.sort(list,new GoodsFavComp());
            System.out.println("排序后:"+list);
        }
    
    }

    TreeSet:

    注意:在添加数据是排序,数据更改不会影响原来的属性

    package com.bjsxt.sort.col;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    
    public class Person {
        private final String name;//名称
        private final int handsome;//帅气指数
        
        public Person() {
            name =null;
            handsome =0;
        }
    
        public Person(String name, int handsome) {
            super();
            this.name = name;
            this.handsome = handsome;
        }
    
        public String getName() {
            return name;
        }
    
        
    
        public int getHandsome() {
            return handsome;
        }
    
        
        
        @Override
        public String toString() {
            return "姓名:"+this.name+",帅气指数:"+this.handsome+"
    ";
        }
        
        
    
    }
    package com.bjsxt.sort.col;
    
    import java.util.Set;
    import java.util.TreeMap;
    
    public class TreeMapDemo {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            Person p1 =new Person("您",100);
            Person p2 =new Person("刘德华",1000);
            Person p3 =new Person("梁朝伟",1200);
            Person p4 =new Person("老裴",50);
            
            TreeMap<Person,String> map =new TreeMap<Person,String>(new java.util.Comparator<Person>(){
    
                @Override
                public int compare(Person o1, Person o2) {
                    return -(o1.getHandsome()-o2.getHandsome());
                }
                
            } );
            map.put(p1, "bjsxt");
            map.put(p2, "bjsxt");
            map.put(p3, "bjsxt");
            map.put(p4, "bjsxt");
            
            //查看键
            Set<Person> persons =map.keySet();
            System.out.println(persons);
        }
    
    }
    package com.bjsxt.sort.col;
    
    public class Worker implements java.lang.Comparable<Worker> {
        //工种
        private String type;
        //工资
        private double salary;
        public Worker() {
            // TODO Auto-generated constructor stub
        }
        
        
        public Worker(String type, double salary) {
            super();
            this.type = type;
            this.salary = salary;
        }
    
    
        public String getType() {
            return type;
        }
        public void setType(String type) {
            this.type = type;
        }
        public double getSalary() {
            return salary;
        }
        public void setSalary(double salary) {
            this.salary = salary;
        }
    
        /**
         * 按工资升序
         */
        @Override
        public int compareTo(Worker o) {
            return this.salary>o.salary?1:( this.salary==o.salary?0:-1);
        }
        
        @Override
        public String toString() {
            return "工种:"+this.type+",工资:"+this.salary+"
    ";
        }
        
    }
    package com.bjsxt.sort.col;
    
    import java.util.TreeSet;
    /**
     * 实体类实现Comparable 接口的应用
     * @author Administrator
     *
     */
    public class TreeSetDemo2 {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            Worker w1 =new Worker("垃圾回收员",12000);
            Worker w2 =new Worker("农民工",8000);
            Worker w3 =new Worker("程序猿",5000);
            
            TreeSet<Worker> employees =new TreeSet<Worker>();
            employees.add(w1);
            employees.add(w2);
            employees.add(w3);
            System.out.println(employees);
            
        }
    
    }

    TreeMap:

    package com.bjsxt.sort.col;
    
    import java.util.Set;
    import java.util.TreeMap;
    
    public class TreeMapDemo {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            Person p1 =new Person("您",100);
            Person p2 =new Person("刘德华",1000);
            Person p3 =new Person("梁朝伟",1200);
            Person p4 =new Person("老裴",50);
            
            TreeMap<Person,String> map =new TreeMap<Person,String>(new java.util.Comparator<Person>(){
    
                @Override
                public int compare(Person o1, Person o2) {
                    return -(o1.getHandsome()-o2.getHandsome());
                }
                
            } );
            map.put(p1, "bjsxt");
            map.put(p2, "bjsxt");
            map.put(p3, "bjsxt");
            map.put(p4, "bjsxt");
            
            //查看键
            Set<Person> persons =map.keySet();
            System.out.println(persons);
        }
    
    }
    package com.bjsxt.sort.col;
    
    import java.util.TreeMap;
    
    public class TreeMapDemo02 {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            Worker w1 =new Worker("垃圾回收员",12000);
            Worker w2 =new Worker("农民工",8000);
            Worker w3 =new Worker("程序猿",5000);
            
            TreeMap<Worker,String > employees =new TreeMap<Worker,String >();
            employees.put(w1,"bjsxt");
            employees.put(w2,"bjsxt");
            employees.put(w3,"bjsxt");
            System.out.println(employees.keySet());
        }
    
    }

    Collections 的相关方法:

    package com.bjsxt.sort.util;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    
    /**
     *1、 binarySearch(List<? extends Comparable<? super T>> list, T key)   容器有序
     *2、sort(List<T> list) 
         sort(List<T> list, Comparator<? super T> c) 
     *3、reverse(List<?> list) 
      4、shuffle(List<?> list) 洗牌
      5、swap(List<?> list, int i, int j) 
     * @author Administrator
     *
     */
    public class CollectionsDemo01 {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            List<Integer> cards =new ArrayList<Integer>();
            //shuffle 洗牌 模拟斗地主
            for(int i=0;i<54;i++){
                cards.add(i); 
            }
            //洗牌
            Collections.shuffle(cards) ;
            //依次发牌
            List<Integer> p1 =new ArrayList<Integer>();
            List<Integer> p2 =new ArrayList<Integer>();        
            List<Integer> p3 =new ArrayList<Integer>();
            List<Integer> last =new ArrayList<Integer>();
            for(int i=0;i<51;i+=3){
                p1.add(cards.get(i));
                p2.add(cards.get(i+1));
                p3.add(cards.get(i+2));
            }
            //最后三张为底牌
            last.add(cards.get(51));
            last.add(cards.get(52));
            last.add(cards.get(53));
            
            System.out.println("第一个人:"+p1);
            System.out.println("第二个人:"+p2);
            System.out.println("第三个人:"+p3);
            System.out.println("底牌为:"+last);
            
            
            
            
            
        }
        //反转
        public static void test1(){
            List<Integer> list =new ArrayList<Integer>();
            list.add(1);
            list.add(2);
            list.add(3);
            list.add(4);
            System.out.println(list);
            Collections.reverse(list);
            System.out.println("反转之后"+list);
        }
    }
  • 相关阅读:
    【java开发需要的环境资源以及开发工具】慢慢更新
    【如何编写有质量代码】【转】
    base——JavaSE&&JavaEE&&JavaME的区别【Java中常用的包结构】
    Mysqlsql——And【sql语句之为何用and一个字段两个值得不到表中的数据】
    Struts2——执行流程
    base——本地资源路径&&网络资源路径&&正反斜杠在Java中的用法
    base——new File(String Path)加载资源问题
    2019-06-11_Python中文编码
    2019-06-11-Python简介
    2019-06-05 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.taotao.search.mapper.SearchItemMapper.getItemList
  • 原文地址:https://www.cnblogs.com/sunhan/p/4003477.html
Copyright © 2011-2022 走看看