主要是用TreeSet实现随机数的排序,详见以下代码
package day38;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
import java.util.TreeSet;
//随机数
public class SetDemo {
public static void main(String[] args) {
//Set<Integer> set = new HashSet<Integer>();
//用treeset来实现,会排序
Set<Integer> set = new TreeSet<Integer>();
Random r = new Random();
while(set.size()<10){
//大于1的数
int number = r.nextInt(20) + 1;
set.add(number);
}
for(Integer i:set){
System.out.println(i);
}
}
}
泛型:编译时类型安全检测机制,本质是参数化类型。就是由原来的具体类型参数化,然后在使用/调用时传入具体的类型(可以使用在类、方法、接口中,分别称为泛型类、泛型方法、泛型接口)
定义格式
<类型>:指定一种类型的格式,这里类型可以看作形参;
<类型1,类型2...>多种参数格式,中间用逗号隔开,这里类型可以看作形参;
以后具体调用时候给定的类型可以看作实参,实参的类型只能是引用数据类型;
泛型好处:1、把运行时候的类型问题,提前放在编译阶段;2、避免了强制类型转换
package day38;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class GenericDemo {
public static void main(String[] args) {
//创建集合对象,并强制类型
Collection<String> c = new ArrayList<String>();
c.add("1");
c.add("2");
//以下类型会报错
//c.add(3);
Iterator<String> it = c.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}