13
14 while(true) {
15 String line = sc.nextLine(); //将键盘录入的字符串存储在line中
16 if(\//如果字符串常量和变量比较,常量放17 面,这样不会出现空指针异常,变量里面可能存储null 18 break; 19 try {
20 int num = Integer.parseInt(line); //将数字字符串转换成数字 21 ts.add(num); 22 } catch (Exception e) {
23 System.out.println(\您录入的数据有误,请输入一个整数\24 } 25 26 } 27
28 for (Integer i : ts) { //遍历TreeSet集合 System.out.println(i); }
4.键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台。
[AppleScript] 纯文本查看 复制代码
黑马程序员济南中心 编著
? 01 Scanner sc = new Scanner(System.in);
02 System.out.println(\请输入5个学生成绩格式是:(姓名,语文成绩,数学成绩,英语成绩)\03 TreeSet
05 public int compare(Student s1, Student s2) {
06 int num = s2.getSum() - s1.getSum(); //根据学生的总成绩降序07 列
08 return num == 0 ? 1 : num; 09 } 10 }); 11
12 while(ts.size() < 5) {
13 String line = sc.nextLine(); 14 try {
15 String[] arr = line.split(\
16 int chinese = Integer.parseInt(arr[1]); //转换语文成绩 17 int math = Integer.parseInt(arr[2]); //转换数学成绩 18 int english = Integer.parseInt(arr[3]); //转换英语成绩 19 ts.add(new Student(arr[0], chinese, math, english)); 20 } catch (Exception e) {
21 System.out.println(\录入格式有误,输入5个学生成绩格式是:(姓名,语文成绩,数学
黑马程序员济南中心 编著
22 绩,英语成绩\23 } 24 25 } 26
27 System.out.println(\排序后的学生成绩是:\28 for (Student s : ts) { System.out.println(s); }
EnumSet类
EnumSet是一个专为枚举类设计的集合类,EnumSet中的所有元素都必须是指定枚举类型的枚举值。
EnumSet类没有暴露任何构造器来创建该类的实例,程序应该通过它提供的static方法来创建EnumSet对象。
static EnumSet allOf(Class elementType):创建一个包含指定枚举类里所有枚举值的EnumSet集合。
static EnumSet complementOf(EnumSet s):创建一个其元素类型与指定EnumSet里元素类型相同的EnumSet集合,新EnumSet集合包含原EnumSet集合所不包含的、此枚举类剩下的枚举值(
即新EnumSet集合和原EnumSet集合的集合元素加起来就是该枚举类的所有枚举值)。 static EnumSet copyOf(Collection c):使用一个普通集合来创建EnumSet集合。
黑马程序员济南中心 编著
static EnumSet copyOf(EnumSet s):创建一个与指定EnumSet具有相同元素类型、相同集合元素的EnumSet集合。
static EnumSet noneOf(Class elementType):创建一个元素类型为指定枚举类型的空EnumSet。
static EnumSet of(E first, E...rest):创建一个包含一个或多个枚举值的EnumSet集合,传入的多个枚举值必须属于同一个枚举类。
static EnumSet range(E from, E to):创建一个包含从from枚举值到to枚举值范围内所有枚举值的EnumSet集合。 例子:
[AppleScript] 纯文本查看 复制代码 ?
01 import java.util.EnumSet; 02
03 enum Season{
04 SPRING,SUMMER,FAIL,WINTER 05 }
06 public class EnumSetTest {
07 public static void main(String[] args) {
08 EnumSet es1 = EnumSet.allOf(Season.class); 09 System.out.println(es1);
10 EnumSet es2 = EnumSet.noneOf(Season.class); 11 System.out.println(es2);
黑马程序员济南中心 编著
12 es2.add(Season.WINTER); 13 es2.add(Season.SPRING); 14 System.out.println(es2);
15 EnumSet es3 = EnumSet.of(Season.SUMMER , Season.WINTER); 16 System.out.println(es3);
17 EnumSet es4 = EnumSet.range(Season.SUMMER, Season.WINTER); 18 System.out.println(es4);
19 EnumSet es5 = EnumSet.complementOf(es4); 20 System.out.println(es5); 21 } 22 } 总结: 1.List
* a.普通for循环, 使用get()逐个获取
* b.调用iterator()方法得到Iterator, 使用hasNext()和next()方法 * c.增强for循环, 只要可以使用Iterator的类都可以用
* d.Vector集合可以使用Enumeration的hasMoreElements()和nextElement()方法 2.Set
* a.调用iterator()方法得到Iterator, 使用hasNext()和next()方法 * b.增强for循环, 只要可以使用Iterator的类都可以用
黑马程序员济南中心 编著