轶哥

📚 Having fun with AI Agent. Always learning.

    JAVA入门 - ArrayList - 产生随机数后去除重复
    •   更新:2017-05-03 15:36:54
    •   首发:2016-04-19 20:01:18
    •   源代码
    •   5903

      三个简单的JAVA练习题。

    1. 建立一个元素类型java.util.Date的线性表,并在表中加入3个日期对象。
    2. 定义一个代表人员的类Person,含有三个数据成员(姓名,性别,年龄)。用TreeSet<Person>存储三个对象。
    3. 产生0-99的随机数100个,去掉重复的,还有多少个相互不同的数?

      注意:因为虚拟机版本问题,在Win和Mac平台中有一小点不同。虽然Java是跨平台的,但不同版本的Java虚拟机对语法的要求还是有略微区别,理论上直接编译都是可以的,但强迫症的轶哥见不得IDE报错。

    Win平台Main.java:

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.*;
    
    public class Main {
    
        public static void main(String[] args) throws ParseException {
            //第一题
            ArrayList&lt;Date&gt; list_one = new ArrayList&lt;&gt;();
            list_one.add(new Date());//添加当前日期
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            String strDate = "2016-4-19";
            Date date = sdf.parse(strDate);//按照格式添加指定字符串日期
            list_one.add(date);
            SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            list_one.add(sdf2.parse("2016-4-19 14:09:32"));//添加包含时分秒的日期
            System.out.println(list_one);
    
            //第二题
            TreeSet&lt;Person&gt; t = new TreeSet&lt;&gt;();
            t.add(new Person("张三", "男", 15));
            t.add(new Person("李四", "女", 35));
            t.add(new Person("王五", "男", 5));
            System.out.println(t);
    
            //第三题
            Random r = new Random();
            List&lt;Integer&gt; list = new ArrayList&lt;&gt;();
            int i;
            while (list.size() &lt;= 100) {
                i = r.nextInt(99);//生成0-99的随机数
                //if(!list.contains(i)){ 如果这样判断,可以在添加的时候就去除重复的数
                list.add(i);
                //}
            }
            List&lt;Integer&gt; listTemp = new ArrayList&lt;&gt;();
            Iterator&lt;Integer&gt; it = list.iterator();
            while (it.hasNext()) {
                int a = it.next();
                if (listTemp.contains(a)) {
                    it.remove();
                } else {
                    listTemp.add(a);
                }
            }
            System.out.println("去掉重复的还剩下:" + list.size() + "个");
        }
    }
    

    Mac平台Main.java:

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.*;
    
    public class Main {
    
        public static void main(String[] args) throws ParseException {
            //第一题
            ArrayList&lt;Date&gt; list_one = new ArrayList&lt;Date&gt;();
            list_one.add(new Date());//添加当前日期
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            String strDate = "2016-4-19";
            Date date = sdf.parse(strDate);//按照格式添加指定字符串日期
            list_one.add(date);
            SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            list_one.add(sdf2.parse("2016-4-19 14:09:32"));//添加包含时分秒的日期
            System.out.println(list_one);
    
            //第二题
            TreeSet&lt;Person&gt; t = new TreeSet&lt;Person&gt;();
            t.add(new Person("张三", "男", 15));
            t.add(new Person("李四", "女", 35));
            t.add(new Person("王五", "男", 5));
            System.out.println(t);
    
            //第三题
            Random r = new Random();
            List&lt;Integer&gt; list = new ArrayList&lt;Integer&gt;();
            int i;
            while (list.size() &lt;= 100) {
                i = r.nextInt(99);//生成0-99的随机数
                //if(!list.contains(i)){ 如果这样判断,可以在添加的时候就去除重复的数
                list.add(i);
                //}
            }
            List&lt;Integer&gt; listTemp = new ArrayList&lt;Integer&gt;();
            Iterator&lt;Integer&gt; it = list.iterator();
            while (it.hasNext()) {
                int a = it.next();
                if (listTemp.contains(a)) {
                    it.remove();
                } else {
                    listTemp.add(a);
                }
            }
            System.out.println("去掉重复的还剩下:" + list.size() + "个");
        }
    }
    

    不分平台 Person.java :

    class Person implements Comparable&lt;Person&gt;{
        private String name;
        private String sex;
        private int age;
    
        Person(String name, String sex, int age){
            this.name = name;
            this.sex = sex;
            this.age = age;
        }
    
        public String toString(){
            return this.name + " " + this.sex + " " + this.age;
        }
    
        @Override
        public int compareTo(Person o) {
            return 1;
        }
    }
    

    执行结果截图:

    JAVA代码

    打赏
    交流区(3)
    写代码的设计师

    学习了!牛逼哥

    2016年4月22日 03:03回复
    Youth霖

    就是ArrayList尖括号里不同吗

    2016年4月26日 13:14回复
    轶哥

    恩。。语法上是这样。

    2016年4月27日 09:46回复
    尚未登陆
    发布
      上一篇 (Ubuntu引导错误修复 - EFI)
    下一篇 (在U盘中安装Ubuntu 16.04 - 制作Ubuntu To Go)  

    评论回复提醒