Collection集合的一些应用
- 1.需求: 编写一个程序,获取10个1至20的随机数,要求随机数不能重复。并把最终的随机数输出到控制台。
- 2.需求: 使用Scanner从键盘读取一行输入,去掉其中重复字符, 打印出不同的那些字符
- 3.需求: ArrayList集合去重
- 4.在一个集合中存储了无序并且重复的字符串,定义一个方法,让其有序(字典顺序),而且还不能去除重复
- 5.从键盘接收一个字符串, 程序对其中所有字符进行排序,例如键盘输入: helloitcast程序打印:acehillostt
- 6.程序启动后, 可以从键盘输入接收多个整数, 直到输入quit时结束输入. 把所有输入的整数倒序排列打印.
- 7.需求:键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台。
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
import java.util.TreeSet;
public class Collections {
public static void main(String[] args) {
}
private static void demo7() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生成绩格式是:姓名,语文成绩,数学成绩,英语成绩");
TreeSet<Student> ts = new TreeSet<>(new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
int num = s2.getSum() - s1.getSum();
return num == 0 ? 1 : num;
}
});
while(ts.size() < 5) {
String line = sc.nextLine();
String[] arr = line.split(",");
int chinese = Integer.parseInt(arr[1]);
int math = Integer.parseInt(arr[2]);
int english = Integer.parseInt(arr[3]);
ts.add(new Student(arr[0], chinese, math, english));
}
System.out.println("排序后的学生信息:");
for (Student s : ts) {
System.out.println(s);
}
}
private static void demo6() {
Scanner sc = new Scanner(System.in);
TreeSet<Integer> ts = new TreeSet<>(new Comparator<Integer>() {
@Override
public int compare(Integer i1, Integer i2) {
int num = i2.compareTo(i1);
return num == 0 ? 1 : num;
}
});
while(true) {
String line = sc.nextLine();
if("quit".equals(line)) {
break;
}
Integer i = Integer.parseInt(line);
ts.add(i);
}
for (Integer integer : ts) {
System.out.println(integer);
}
}
private static void demo5() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串");
String line = sc.nextLine();
char[] arr = line.toCharArray();
TreeSet<Character> ts = new TreeSet<>(new Comparator<Character>() {
@Override
public int compare(Character c1, Character c2) {
int num = c1.compareTo(c2);
return num == 0 ? 1 : num;
}
});
for(char c : arr) {
ts.add(c);
}
for(Character c : ts) {
System.out.print(c);
}
}
private static void demo4() {
ArrayList<String> list = new ArrayList<>();
list.add("aaa");
list.add("aaa");
list.add("ccc");
list.add("ddd");
list.add("fffffffffff");
list.add("heima");
list.add("itcast");
list.add("bbbb");
list.add("aaa");
list.add("aaa");
sort(list);
System.out.println(list);
}
public static void sort(List<String> list) {
TreeSet<String> ts = new TreeSet<>(new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
int num = s1.compareTo(s2);
return num == 0 ? 1 : num;
}
});
ts.addAll(list);
list.clear();
list.addAll(ts);
for (String s : list) {
System.out.println(s);
}
}
private static void demo3() {
ArrayList<String> array = new ArrayList<>();
array.add("a");
array.add("a");
array.add("b");
array.add("c");
array.add("b");
array.add("d");
array.add("e");
HashSet<String> hs = new HashSet<>();
hs.addAll(array);
for (String s : hs) {
System.out.print(s + " ");
}
}
private static void demo2() {
Scanner sc = new Scanner(System.in);
String line = sc.next();
HashSet<Character> hs = new HashSet<>();
char[] lines = line.toCharArray();
for(int i = 0; i < lines.length; i++) {
hs.add(lines[i]);
}
for (char c : lines) {
System.out.println(c);
}
}
private static void demo1() {
Random r = new Random();
HashSet<Integer> hs = new HashSet<>();
while(hs.size() < 10) {
hs.add(r.nextInt(20+1));
}
for (Integer t : hs) {
System.out.print(t + " ");
}
}
}
class Student {
private String name;
private int chinese;
private int math;
private int english;
private int sum;
public Student() {
super();
}
public Student(String name, int chinese, int math, int english) {
super();
this.name = name;
this.chinese = chinese;
this.math = math;
this.english = english;
this.sum = this.chinese + this.math + this.english;
}
public int getSum() {
return sum;
}
public String toString() {
return name + "," + chinese + "," + math + "," + english + "," + sum;
}
}