学习目标:
1.Comparator接口的使用;
2.Map集合。
一、Comparator接口的使用
此接口定义排序只能按照compareTo()定义的排序规则;
如果同一类对象要有多种排序方式,应该为该类定义不同的比较器(实现Comparator接口的类)TreeSet有一个构造方法允许给定比较器,它就会根据给定的比较器对元素进行排序
eg:package comparator;
public class Girl {
private String name;
private int face;
private double money;
public Girl() {
}
public Girl(String name, int face, double money) {
super();
this.name = name;
this.face = face;
this.money = money;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getFace() {
return face;
}
public void setFace(int face) {
this.face = face;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
@Override
public String toString() {
return "Girl [name=" + name + ", face=" + face + ", money=" + money
+ "]";
}
}
//facerule
package comparator;
import java.util.Comparator;
// 以face为第一排序规则
public class FaceRule implements Comparator
@Override
public int compare(Girl g1, Girl g2) {
if(g1.getFace()>g2.getFace()){
return -1;
}else if(g1.getFace()
}else{
if(g1.getMoney()>g2.getMoney()){
return -1;
}else if(g1.getMoney()
}else{
return g1.getName().compareTo(g2.getName());
}
}
}
}
//moneyrule
package comparator;
import java.util.Comparator;
// 以money为第一排序规则
public class MoneyRule implements Comparator
@Override
public int compare(Girl g1, Girl g2) {
if(g1.getMoney()>g2.getMoney()){
return -1;
}else if(g1.getMoney()
}else{
if(g1.getFace()>g2.getFace()){
return -1;
}else if(g1.getFace()
}else{
return g1.getName().compareTo(g2.getName());
}
}
}
}
//test
package comparator;
import java.util.TreeSet;
public class TreeSetDemo {
public static void main(String[] args) {
TreeSet
ts1.add(new Girl("小红",80,20.5));
ts1.add(new Girl("小草",99,1.1));
ts1.add(new Girl("小翠",60,20.5));
ts1.add(new Girl("小娟",80,60.5));
ts1.add(new Girl("小花",40,50.5));
System.out.println("以face为第一标准:");
for(Girl g:ts1){
System.out.println(g);
}
System.out.println("********************************");
System.out.println("以money为第一标准:");
TreeSet
ts2.add(new Girl("小红",80,20.5));
ts2.add(new Girl("小草",99,1.1));
ts2.add(new Girl("小翠",60,20.5));
ts2.add(new Girl("小娟",80,60.5));
ts2.add(new Girl("小花",40,50.5));
for(Girl g:ts2){
System.out.println(g);
}
}
}
二、Map集合
实现Map接口的集合类用来存储“键-值”映射对。不能把包含重复的键,但值可有多个。
Map接口方法:
eg:package map;
import java.util.*;
import java.util.Map.Entry;
public class HashMapDemo {
public static void main(String[] args) {
HashMap
map.put(null,null);
map.put("apple","苹果");
map.put("sport","足球");
map.put("car","宝马汽车");
map.put("country","中国");
System.out.println("现在map集合中共有键值对:"+map.size());
System.out.println("删除之前:key为sport的元素值:"+map.get("sport"));
map.remove("sport");
System.out.println("删除之后:key为sport的元素值:"+map.get("sport"));
System.out.println("包括key为car的键值对吗?"+map.containsKey("car"));
System.out.println("包括key为animal的键值对吗?"+map.containsKey("animal"));
System.out.println("包括value为\"宝马汽车\"的键值对吗?"+map.containsValue("宝马汽车"));
Set
System.out.println("所有的key是:");
for(String key:keys){
System.out.print(key+" ");
}
System.out.println();
System.out.println("所有的value是:");
Collection
for(String value:values){
System.out.print(value+" ");
}
System.out.println();
System.out.println("*********遍历整个map集合**************");
Set
for(Map.Entry
System.out.println(me.getKey()+"========>"+me.getValue());
}
}
}
(1)HashMap类:散列存放
(2)TreeMap类:“key-value”中的“key”是可“排序”的。
(3)Map.Entry接口Map中内部定义的一个接口,专门用来保存“key-value”的内容。
使用 setProperty(String key,String value)方法,因为存放的“键-值”对都是字符串
取值也应该使用getProperty(Stringkey)。
package map;
import java.util.Properties;
public class PropertiesDemo {
public static void main(String[] args) {
Properties pro=new Properties();
pro.setProperty("oper","linux");
pro.setProperty("time","2018");
pro.setProperty("vip","yes");
System.out.println(pro.getProperty("vip"));
System.out.println(pro.getProperty("abc","没有找到对应的属性名,这是默认值"));
}
}
学习目标:
1.异常的概念与原理;
2. 异常的分类;
3. 处理异常的方法;
4.自定义异常。
一、异常的概念与原理
(1)定义:
1.throw用来手动抛出异常对象。
2.throws用于方法声明处,用于抛出该方法体内部可能发生的异常类型。一旦在方法声明处通过throws抛出某种类型的异常,则在该方法体内部就不用处理该类型的异常,交给方法调用处处理该类型的异常。
四、自定义异常public class MyException extends Exception {
public MyException() {
super();
}
public MyException(String msg) {
super(msg);
}
}
eg:
package throwdemo;
import java.io.IOException;
public class ThrowDemo {
public static void main(String[] args) {
try{
throw new ArithmeticException(); //throw手动抛出异常对象
}catch(Exception e){
System.out.println("发生算数异常了...");
}
int a=100;
System.out.println("end....");
}
}