1.在一个集合中存储了无序并且重复的字符串,定义一个方法,让其有序(字典顺序),而且还不能去除重复
import java.util.ArrayList;
import java.util.Comparator;
import java.util.TreeSet;
public class Test4 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("aaaa");
list.add("ba");
list.add("it");
list.add("heima");
list.add("aaaa");
list.add("xx");
sort(list);
System.out.println(list);
}
public static void sort(ArrayList<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);
}
}
2.从键盘接受一个字符串,程序对其中所有字符进行排序,例如键盘输入helloitcast,程序打印acehillostt
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;
public class Test5 {
public static void main(String[] args) {
System.out.println("请输入一个字符串:");
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
char[] cs = 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 (Character c : cs) {
ts.add(c);
}
for (Character c : ts) {
System.out.print(c);
}
}
}
3.从键盘接受一个字符串,程序对其中所有字符进行排序,例如键盘输入helloitcast,程序打印acehillostt
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;
public class Test6 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一批整数,按quit结束:");
TreeSet<Integer> ts = new TreeSet<>(new Comparator<Integer>() {
@Override
public int compare(Integer i1, Integer i2) {
int num = i1 - i2;
return num == 0 ? 1 : num;
}
});
while(true) {
String line = sc.nextLine();
if ("quit".equals(line)) {
break;
}
int i = Integer.parseInt(line);
ts.add(i);
}
for (Integer integer : ts) {
System.out.println(integer);
}
}
}
3.从键盘接受五个学生的三门课成绩,最后根据总分来排序输出
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;
import com.heima.bean.Student;
public class Test7 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
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));
}
for (Student s : ts) {
System.out.println(s);
}
}
}