JAVA入门 - ArrayList - 产生随机数后去除重复
- 更新:2017-05-03 15:36:54
- 首发:2016-04-19 20:01:18
- 源代码
- 5506
三个简单的JAVA练习题。
- 建立一个元素类型java.util.Date的线性表,并在表中加入3个日期对象。
- 定义一个代表人员的类Person,含有三个数据成员(姓名,性别,年龄)。用TreeSet<Person>存储三个对象。
- 产生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<Date> list_one = new ArrayList<>();
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<Person> t = new TreeSet<>();
t.add(new Person("张三", "男", 15));
t.add(new Person("李四", "女", 35));
t.add(new Person("王五", "男", 5));
System.out.println(t);
//第三题
Random r = new Random();
List<Integer> list = new ArrayList<>();
int i;
while (list.size() <= 100) {
i = r.nextInt(99);//生成0-99的随机数
//if(!list.contains(i)){ 如果这样判断,可以在添加的时候就去除重复的数
list.add(i);
//}
}
List<Integer> listTemp = new ArrayList<>();
Iterator<Integer> 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<Date> list_one = new ArrayList<Date>();
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<Person> t = new TreeSet<Person>();
t.add(new Person("张三", "男", 15));
t.add(new Person("李四", "女", 35));
t.add(new Person("王五", "男", 5));
System.out.println(t);
//第三题
Random r = new Random();
List<Integer> list = new ArrayList<Integer>();
int i;
while (list.size() <= 100) {
i = r.nextInt(99);//生成0-99的随机数
//if(!list.contains(i)){ 如果这样判断,可以在添加的时候就去除重复的数
list.add(i);
//}
}
List<Integer> listTemp = new ArrayList<Integer>();
Iterator<Integer> 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<Person>{
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;
}
}
执行结果截图:
除特别注明外,本站所有文章均为原创。原创文章均已备案且受著作权保护,未经作者书面授权,请勿转载。
打赏
交流区(3)
学习了!牛逼哥
2016年4月22日 03:03回复
就是ArrayList尖括号里不同吗
2016年4月26日 13:14回复
恩。。语法上是这样。
2016年4月27日 09:46回复
老师你好,我希望能用一个openwrt路由器实现IPv4和IPv6的桥接,请问我该如何实现?我尝试了直接新增dhcpv6的接口,但是效果不甚理想(无法成功获取公网的ipv6,但是直连上级路由的其他设备是可以获取公网的ipv6地)
![%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE20241205230845.png](https://cdn.wyr.me/visitor-files/2024-12-05/1733411344287屏幕截图 2024-12-05 230845.png)你好
,为什么我这里是0039 813C 0600 0075 16xx xx xx,只有前6组是相同的,博客中要前8位相同,这个不同能不能照着修改呢?我系统版本是Win1124H2
大神你好,win11专业版24h2最新版26100.2033,文件如何修改?谢谢
win11专业版24h2最新版26100.2033,Windows Feature Experience Pack 1000.26100.23.0。C:\Windows\System32\termsrv.dll系统自带的这个文件,39 81 3C 06 00 00 0F 85 XX XX XX XX 替换为 B8 00 01 00 00 89 81 38 06 00 00 90。仍然无法远程连接。原来是win11 21h2系统,是可以远程链接的。共享1个主机,2个显示器,2套键鼠,各自独立操作 各自不同的账号,不同的桌面环境。
博主,win11专业版24h2最新版,C:\Windows\System32\termsrv.dll系统自带的这个文件,找不到应该修改哪个字段。我的微信:一三五73二五九五00,谢谢