1、键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台。 a:自然排序 测试类: `package treeSet集合;

import java.util.Comparator; import java.util.Scanner; import java.util.TreeSet;

public class ZuoyeScannerSelect { public static void main(String[] args) { TreeSet<StudentSelect> ts=new TreeSet<StudentSelect>(new Comparator<StudentSelect>() {

		@Override
		public int compare(StudentSelect s1, StudentSelect s2) {
			int num1=s2.sum(s2)-s1.sum(s1);
			int num2=(num1==0)?s2.getName().compareTo(s1.getName()):num1;
			return num2;
		}
		
	}) ;
	System.out.println("请输入学生信息:");
	//录入学生信息
    for(int x=1;x<6;x++) {
    	Scanner sc=new Scanner(System.in);
    	System.out.print("请输入第"+x+"个学生的姓名:");
	    //录入学生姓名
	    String name=sc.nextLine();
	    System.out.print("请输入第"+x+"个学生的语文成绩:");
	    //录入学生语文成绩
	    int chineseScore=sc.nextInt();
	    System.out.print("请输入第"+x+"个学生的数学成绩:");
	    //录入学生数学成绩
	    int mathScore=sc.nextInt();
	    System.out.print("请输入第"+x+"个学生的英语成绩:");
	    //录入学生英语成绩
	    int englishScore=sc.nextInt();
	    //将学生信息封装到学生对象里
	    StudentSelect s=new StudentSelect();
	    s.setName(name);
	    s.setChineseScore(chineseScore);
	    s.setMathScore(mathScore);
	    s.setEnglishScore(englishScore);
	    //把学生对象添加到集合中
	    ts.add(s);
    }
	//遍历
	for(StudentSelect s:ts) {
		System.out.println(s.getName()+","+ + s.getChineseScore()+","
	+ s.getMathScore()+","+ s.getEnglishScore()+","+s.sum(s));
	}
}	

}` 实体类:

package treeSet集合;

public class StudentZiran implements Comparable<StudentZiran>{
	//自然排序,自定义类中实现Comparable接口
	private String name;
	private int chineseScore;
	private int mathScore;
	private int englishScore;
	
	public StudentZiran() {//无参构造
		// TODO Auto-generated constructor stub
	}
	//有参构造
	public StudentZiran(String name,int chineseScore,int mathScore,int englishScore) {
		this.name=name;
		this.chineseScore=chineseScore;
		this.mathScore=mathScore;
		this.englishScore=englishScore;
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getChineseScore() {
		return chineseScore;
	}
	public void setChineseScore(int chineseScore) {
		this.chineseScore = chineseScore;
	}
	public int getMathScore() {
		return mathScore;
	}
	public void setMathScore(int mathScore) {
		this.mathScore = mathScore;
	}
	public int getEnglishScore() {
		return englishScore;
	}
	public void setEnglishScore(int englishScore) {
		this.englishScore = englishScore;
	}
	//求总成绩方法
	public  int sum(StudentZiran s) {
		return s.getChineseScore()+s.getMathScore()+s.getEnglishScore();
	}
	//重写compearTo()方法
	@Override
	public int compareTo(StudentZiran s) {
		//主要排序条件:总成绩,按总成绩从高到低
		int num1=s.sum(s)-this.sum(this);
		//次要排序条件,当总成绩相同时按学生姓名内容比较
		int num2=(num1==0)?s.getName().compareTo(this.getName()):num1;
		return num2;
	}	
}

	b:选择器排序
	测试类:
	`package treeSet集合;

import java.util.Comparator; import java.util.Scanner; import java.util.TreeSet;

public class ZuoyeScannerSelect { public static void main(String[] args) { TreeSet<StudentSelect> ts=new TreeSet<StudentSelect>(new Comparator<StudentSelect>() {

		@Override
		public int compare(StudentSelect s1, StudentSelect s2) {
			int num1=s2.sum(s2)-s1.sum(s1);
			int num2=(num1==0)?s2.getName().compareTo(s1.getName()):num1;
			return num2;
		}
		
	}) ;
	System.out.println("请输入学生信息:");
	//录入学生信息
    for(int x=1;x<6;x++) {
    	Scanner sc=new Scanner(System.in);
    	System.out.print("请输入第"+x+"个学生的姓名:");
	    //录入学生姓名
	    String name=sc.nextLine();
	    System.out.print("请输入第"+x+"个学生的语文成绩:");
	    //录入学生语文成绩
	    int chineseScore=sc.nextInt();
	    System.out.print("请输入第"+x+"个学生的数学成绩:");
	    //录入学生数学成绩
	    int mathScore=sc.nextInt();
	    System.out.print("请输入第"+x+"个学生的英语成绩:");
	    //录入学生英语成绩
	    int englishScore=sc.nextInt();
	    //将学生信息封装到学生对象里
	    StudentSelect s=new StudentSelect();
	    s.setName(name);
	    s.setChineseScore(chineseScore);
	    s.setMathScore(mathScore);
	    s.setEnglishScore(englishScore);
	    //把学生对象添加到集合中
	    ts.add(s);
    }
	
	//遍历
	for(StudentSelect s:ts) {
		System.out.println(s.getName()+","+ + s.getChineseScore()+","
	+ s.getMathScore()+","+ s.getEnglishScore()+","+s.sum(s));
	}
}	

}` 实体类:

package treeSet集合;

public class StudentSelect {
	private String name;
	private int chineseScore;
	private int mathScore;
	private int englishScore;
	
	public StudentSelect() {//无参构造
		// TODO Auto-generated constructor stub
	}
	//有参构造
	public StudentSelect(String name,int chineseScore,int mathScore,int englishScore) {
		this.name=name;
		this.chineseScore=chineseScore;
		this.mathScore=mathScore;
		this.englishScore=englishScore;
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getChineseScore() {
		return chineseScore;
	}
	public void setChineseScore(int chineseScore) {
		this.chineseScore = chineseScore;
	}
	public int getMathScore() {
		return mathScore;
	}
	public void setMathScore(int mathScore) {
		this.mathScore = mathScore;
	}
	public int getEnglishScore() {
		return englishScore;
	}
	public void setEnglishScore(int englishScore) {
		this.englishScore = englishScore;
	}
	//求总成绩方法
	public static int sum(StudentSelect s) {
		return s.getChineseScore()+s.getMathScore()+s.getEnglishScore();
	}

}

2、获取10随机数,1-20之间,要求值不能重复!(ArrayList,HashSet) ArrayList:

package 集合获取随机数;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.Random;

public class ArrayListGetRandom {
	public static void main(String[] args) {
		//创建集合al
		ArrayList<Integer> al=new ArrayList<Integer>();
		//创建新集合newal
		ArrayList<Integer> newal=new ArrayList<Integer>();
		//判断新集合newal中的元素个数是否够10个,若不够,继续添加
		while(newal.size()<10) {
			//创建获取随机数对象
			Random r=new Random();
			//获取随机数
		    int n=r.nextInt(20);
		    //将获取到的随机数添加到集合al集合
		    al.add(n);
		    //遍历旧集合
		    Iterator<Integer> it=al.iterator();
		    while(it.hasNext()) {
			   int i=it.next();
			   //判断newal中是否包含al中的元素,若不包含,将al中的元素添加到newal中
			   if(!newal.contains(i)) {
				   newal.add(i);
			   }
		    }
		    //遍历newal集合
		    for(int i:newal) {
			   System.out.println(i);
    	    }
		}
	}
}

HashSet:

package 集合获取随机数;

import java.util.HashSet;
import java.util.Random;
import java.util.Set;

public class HashSetGetRandom {
	public static void main(String[] args) {
		//创建Set集合对象
		Set<Integer> set=new HashSet<Integer>();
		//创建获取随机数类对象
		Random r=new Random();
		//判断已获取随机数个数,若不够10个,则继续添加
		while(set.size()<10) {
			//获取随机数
			int n=r.nextInt(20);
		      //将获取的随机数添加到集合set中
		      set.add(n);      
		}
		//增强for循环遍历集合set
	    for(int i:set) {
			 System.out.println(i);
		}
    }
}

3、ArrayList集合嵌套HashMap集合并遍历。 需求: 假设ArrayList集合的元素是HashMap。有3个。 每一个HashMap集合的键和值都是字符串。 元素如下,请遍历。

ArrayList<HashMap<String,String>>

结果: 周瑜---小乔 吕布---貂蝉

郭靖---黄蓉 杨过---小龙女

令狐冲---任盈盈 林平之---岳灵珊 `package 集合嵌套;

import java.util.ArrayList; import java.util.HashMap; import java.util.Set;

public class AM { public static void main(String[] args) { //创建一个大的ArrayList集合am ArrayList<HashMap<String,String>> am=new ArrayList<HashMap<String,String>>(); //创建第一个HashMap集合hm1 HashMap<String,String> hm1=new HashMap<String,String>(); //给集合hm1添加元素 hm1.put("周瑜","小乔"); hm1.put("吕布","貂蝉"); //将hm1的元素添加到大集合am中 am.add(hm1); //创建第二个HashMap集合hm2 HashMap<String,String> hm2=new HashMap<String,String>(); //给集合hm2添加元素 hm2.put("郭靖","黄蓉"); hm2.put("杨过","小龙女"); //将hm2的元素添加到大集合am中 am.add(hm2); //创建第三个HashMap集合hm3 HashMap<String,String> hm3=new HashMap<String,String>(); //给集合hm3添加元素 hm3.put("令狐冲","任盈盈"); hm3.put("林平之","岳灵珊"); //将hm3的元素添加到大集合am中 am.add(hm3); //遍历大集合am for(HashMap<String,String> ahm:am) { Set<String> set=ahm.keySet(); for(String key:set) { String value=ahm.get(key); System.out.println(key+"---"+value); } System.out.println(); } } }`