Javase day10_汇总

map

package com.neuedu.day10;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;

import org.junit.Test;

map exception

package com.neuedu.day10;

public class Position {
    //纬度
	private double lat;
	// 经度
	private double lon;

	public Position(double lat, double lon) {
		super();
		this.lat = lat;
		this.lon = lon;
	}

	public double getLat() {
		return lat;
	}

	public void setLat(double lat) {
		this.lat = lat;
	}

	public double getLon() {
		return lon;
	}

	public void setLon(double lon) {
		this.lon = lon;
	}

	public Position() {
		super();
	}

}
public class Mappp {
	/*
	 * 1.Map<key,value>
	 * 
	 */
	@Test
	public void myTest01() {
		Map<String, Position> map = new HashMap();
		Position p1 = new Position(41.48, 123.02);
		Position p2 = new Position(41.52, 123.58);
		// put方法是向map里放如果key相同覆盖
		map.put("18642047789", p1);
		map.put("15084106996", p2);
		// get(key)根据key查询对象
		Position p1_get = map.get("18642047789");
		// size()获取大小
		int len = map.size();
		System.out.println(p1_get.getLat());
		System.out.println(p1_get.getLon());

		// containskey containsValue 判断有没有
		if (map.containsKey("19304001139")) {
			System.out.println("有");
		} else {
			System.out.println("没有");
		}
		// 了解
		if (map.containsValue(p1)) {
			System.out.println("有");
		} else {
			System.out.println("没有");
		}
		// remove方法是移除
		map.remove("15084106996");
		System.out.println(map);
	}

map的遍历

@Test
	public void myTest02() {
	
		Map<String, Position> map = new HashMap();
		Position p1 = new Position(41.48, 123.02);
		Position p2 = new Position(41.52, 123.58);
		// put方法是向map里放如果key相同覆盖
		map.put("18642047789", p1);
		map.put("15084106996", p2);
		// 获取所有的key
		Set<String> keys = map.keySet();
		// 循环key,逐个获得value
		for (String key : keys) {
			System.out.println(key);
			Position p = map.get(key);
			System.out.println("取出的位置" + p.getLat() + " " + p.getLon());
			System.out.println("-----------");
		}
	}
@Test
	public void myTest03() {

		Map<String, Position> map = new HashMap();
		Position p1 = new Position(41.48, 123.02);
		Position p2 = new Position(41.52, 123.58);
		// put方法是向map里放如果key相同覆盖
		map.put("18642047789", p1);
		map.put("15084106996", p2);
		// entrySet
		Set<Entry<String, Position>> entrys = map.entrySet();
		for (Entry<String, Position> entry : entrys) {
			System.out.println(entry.getKey());
			Position p = entry.getValue();
			System.out.println("取出的位置" + p.getLat() + " " + p.getLon());
			System.out.println("-----------");
		}	
	}

编写一个程序,创建一个HashMap对象
用于存储银行储户的信息(其中储户的主要信息是id 姓名 余额)
另外,计算并显示其中某个储户的当前余额

package com.neuedu.day10;

public class Depositor {
	private String name;
	private double balance;

	public Depositor() {
		super();
	}

	public Depositor(String name, double balance) {
		super();
		this.name = name;
		this.balance = balance;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public double getBalance() {
		return balance;
	}

	public void setBalance(double balance) {
		this.balance = balance;
	}

}
@Test
	public void myTest04() {
		Map<String, Depositor> map = new HashMap();
		Depositor d1 = new Depositor("运1", 5512.24);
		Depositor d2 = new Depositor("运2", 552.12);
		Depositor d3 = new Depositor("运3", 5582.24);
		Depositor d4 = new Depositor("运4", 6412.24);
		map.put("123", d1);
		map.put("124", d2);
		map.put("125", d3);
		map.put("126", d4);
		Set<String> keys = map.keySet();
		for (String key : keys) {
			Depositor d = map.get(key);
			System.out.println(d.getBalance());
		}

	}
@Test
	public void myTest05() {
		Map<String, Depositor> map = new HashMap();
		Depositor d1 = new Depositor("运1", 5512.24);
		Depositor d2 = new Depositor("运2", 552.12);
		Depositor d3 = new Depositor("运3", 5582.24);
		Depositor d4 = new Depositor("运1", 6412.24);
		map.put("123", d1);
		map.put("124", d2);
		map.put("125", d3);
		map.put("126", d4);
		Scanner sc = new Scanner(System.in);
		String s = sc.next();
		double sum = 0;
		Set<String> keys = map.keySet();
		for (String key : keys) {
			Depositor d = map.get(key);
			if (d.getName().equals(s)) {
				sum = sum + d.getBalance();
			}
		}
		System.out.println(sum);
	}

异常处理

package com.neuedu.day10;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.junit.Test;

//异常处理
public class TestException {
	@Test
	public Date stringToDate(String str) {
		Date now = null;
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		try {
			now = sdf.parse(str);
		} catch (ParseException e) {
			System.out.println("日期格式错误");
			e.printStackTrace();
		}
		return now;
	}

	@Test
	public Date stringToDate2(String str) throws ParseException {
		Date now = null;
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		now = sdf.parse(str);
		return now;
	}
}
@Test
public void myTest06() {
	TestException te = new TestException();
	Date d = te.stringToDate("2020-08-18");

	try {
		Date d2 = te.stringToDate2("20200818");
	} catch (ParseException e) {
		e.printStackTrace();
		System.out.println("日期格式异常");
	}
}

分别处理时,小的异常放内层,越大的往外放

@Test
public void myTest07() {
	// try{}final{}
	// try{}catch{}final{}
	FileInputStream file = null;
	try {
		// 打开文件
		file = new FileInputStream("E;/java11/javase/test1.tst");
		// 可以执行其他操作

	} catch (FileNotFoundException e) {
		System.out.println("文件不存在");
		e.printStackTrace();
	} catch (IOException e) {
		e.printStackTrace();
	} catch (Exception e) {
		// System.exit;系统退出,这个时候finally执行不到
		e.printStackTrace();
	}
	// 关闭文件
	finally {// 无论如何都会被执行,经常用来作为后续清理工作,关闭流关闭数据连接.清除内存中的某些东西
		try { 
			file.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
@Test
	public void myTest08() {
		// try{}final{}
		// try{}catch{}final{}
		FileInputStream file = null;
		try {
			// 打开文件
			file = new FileInputStream("E;/java11/javase/test1.tst");
			// 可以执行其他操作
			int i = 1 / 0;

		} catch (FileNotFoundException e) {
			System.out.println("出现");
		} catch (IOException e) {
			e.printStackTrace();
		} catch (Exception e) {
			// System.exit;系统退出,这个时候finally执行不到
			e.printStackTrace();
		}
		// 关闭文件
		finally {// 无论如何都会被执行,经常用来作为后续清理工作,关闭流关闭数据连接.清除内存中的某些东西
			try {
				file.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}

作业

创建类Student,属性有平时成绩,期末成绩; 方法有计算总成绩的方法getScore(), (用平时成绩加上期末成绩的1/2,来计算总成绩);
在上面的方法中,在方法头声明异常Exception, 如果总成绩小于60分,则抛出异常Exception。创建测试类,
实例化Student对象,给平时成绩和期末成绩赋值, 然后调用getScore()方法来计算总成绩,注意异常的捕获。

package com.neuedu.day10;

import java.util.Scanner;

import org.junit.Test;

import com.neuedu.day10.homework.Accoun;
import com.neuedu.day10.homework.Student;

public class HomeWork {
	
package com.neuedu.day10.homework;

import com.neuedu.day10.BNEException;


public class Student {
	private double peacetimescore;
	private double endscore;
	private double sumscore;
	public Student() {
		super();
	}
	public double getPeacetimescore() {
		return peacetimescore;
	}
	public void setPeacetimescore(double peacetimescore) {
		this.peacetimescore = peacetimescore;
	}
	public double getEndscore() {
		return endscore;
	}
	public void setEndscore(double endscore) {
		this.endscore = endscore;
	}
	public Student(double peacetimescore, double endscore) {
		super();
		this.peacetimescore = peacetimescore;
		this.endscore = endscore;
	}
	public double getScore () throws Exception
	{
		this.sumscore=this.peacetimescore+this.endscore;
		if(this.sumscore>=60) {
		return this.sumscore;}
		else
		{
			throw new Exception("分数异常");
		}
	}
}
	@Test
	public void myTest01() {
		Student s = new Student(1, 21);
		try {
			System.out.println(s.getScore());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

自定义异常类BNEException。 编写帐户类Account,属性包括帐号和余额;
方法包括存钱方法save(doubled),增加收入后,打印输出余额; 取钱方法pay(double d),减少收入后,打印输出余额,当余额小于0时,
抛出余额不足的异常BNEException。编写测试类,创建Account的对象, 并且调用该对象的save和pay方法。

package com.neuedu.day10.homework;

public class Accoun {
	private String id;
	private double money;

	public Accoun() {
		super();
	}

	public Accoun(String id, double money) {
		super();
		this.id = id;
		this.money = money;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public double getMoney() {
		return money;
	}

	public void setMoney(double money) {
		this.money = money;
	}

	public double save(double d) {
		this.money = this.money + d;
		return this.money;
	}

	public double pay(double d) throws BNEException {
		double yue;
		yue = this.money - d;
		if (yue > 0) {
			return yue;
		} else {
			throw new BNEException("余额异常");
		}
	}
}
package com.neuedu.day10.homework;

public class BNEException extends Exception {

	public BNEException() {
		super();
	}

	public BNEException(String message) {
		super(message);
	}
}
@Test
public void myTest02() throws BNEException {
	Accoun a = new Accoun("运1", 5000);
	a.save(4000);
	try {
		a.pay(12000);
	} catch (com.neuedu.day10.homework.BNEException e) {
		e.printStackTrace();
	}
}

编写应用程序,从命令行传入两个整型数作为除数和被除数。 要求程序中捕获NumberFormatException异常和
ArithmeticException 异常,而且无论在哪种情况下, “总是被执行”这句话都会在控制台输出。

 
	@Test
	public void myTest03() {
		Scanner sc = new Scanner(System.in);
		String string1 = sc.next();
		String string2 = sc.next();
		try {
			int c1 = Integer.parseInt(string1);
			int c2 = Integer.parseInt(string2);
			System.out.println(c1 / c2);
		} catch (NumberFormatException e) {
			e.printStackTrace();
		} catch (ArithmeticException e) {
			e.printStackTrace();
		} finally {
			System.out.println("总是被执行");
		}
	}
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值