1 . 有一個罎子(Set<Ball> crock),裡面裝有很多重量顏色不同的球(class Ball {private String color; private int weight; } ) ,
要求实现目的: 請實現一個class,尋找指定顏色相同,指定重量最接近,重量比較輕的一個球! 比如:罎子有三個球,分別是Ball(Black,1KG) ,Ball(Black,21KG) ,Ball(Red,15KG),
如果我需要拿Ball(black,1KG) , 可以找到Ball(black,1KG) ,因為罎子有這個球
如果我需要拿Ball(black,2KG) , 可以找到Ball(black,1KG) ,因為Ball(black,1KG)最接近Ball(black,2KG)
如果我需要拿Ball(black,11KG) , 可以找到Ball(black,1KG) ,因為Ball(black,1KG) 和 Ball(black,21KG)
最接近Ball(black,11KG) ,而且Ball(black,1KG)比Ball(black,21KG)輕
如果我需要拿Ball(black,18KG) , 可以找到Ball(black,21KG) ,因為因為Ball(black,21KG)最接近Ball(black,11KG)
如果我需要拿Ball(Red,2KG) , 可以找到Ball(Red,15KG)
如果我需要拿Ball(Blue,15KG) , 找不到合適的球
代碼實例: 以下代碼沒有上機測試,只是幫助理解題意!可能存在錯誤,請自行參考更正!
//pojo
public class Ball{
private String color;
private int weight;
//省略get,set method!
}
//具體業務
public class BallManager{
private Set<Ball> crock; // 一個罎子
private Set<String> holdBalls; //想要取得的球
public Map<String,Ball> getBalls(){
// 返回的Map<String,Ball>,keys 為 holdBalls , values 為找到的球
// 請寫出具體的
}
} //測試
public class BallManagerTest extends junit.framework.TestCase{
public void testgetBall1(){
//構造罎子,裡面的數據我以例子裡面的數據
Set<Ball> crock = new HashSet<Ball>();
Ball ball_black1 = new Ball("BLACK",1);crock.add(ball_black1);
Ball ball_black21 = new Ball("BLACK",21);crock.add(ball_black21);
Ball ball_red15 = new Ball("RED",15);crock.add(ball_red15);
//構造想要取得的球
Set<String> holdBalls = new HashSet<String>();
holdBalls.add("black1");
holdBalls.add("black2");
holdBalls.add("blue15");
//調用業務
BallManager ballManager = new BallManager();
ballManager.setCrock(crock);
ballManager.setHoldBalls(holdBalls);
Map<String,Ball> res = ballManager.getBalls();
//測試結果!
//比較Ball("BLACK",1);
Ball b1 = new Ball("BLACK",1); //正確結果,測試者構造
Ball b2 = res.get("black1"); //程序得到結果
System.out.println(check(b1 ,b2)); //為true,表示測試成功 //比較Ball("BLUE",15);
b1 = null //正確結果,測試者構造
b2 = res.get("blue15"); //程序得到結果
System.out.println(check(b1 ,b2)); //為true,表示測試成功
}
private boolean check(Ball b1 , Ball b2){
if(b1==null && b2==null) {
return true;
}else if(b1==null || b2==null){
return false;
}else{
return b1.getColor().equalsIgnoreCase(b2.getColor()) && b1.getWeight==b2.getWeight;
}
}
}
要求实现目的: 請實現一個class,尋找指定顏色相同,指定重量最接近,重量比較輕的一個球! 比如:罎子有三個球,分別是Ball(Black,1KG) ,Ball(Black,21KG) ,Ball(Red,15KG),
如果我需要拿Ball(black,1KG) , 可以找到Ball(black,1KG) ,因為罎子有這個球
如果我需要拿Ball(black,2KG) , 可以找到Ball(black,1KG) ,因為Ball(black,1KG)最接近Ball(black,2KG)
如果我需要拿Ball(black,11KG) , 可以找到Ball(black,1KG) ,因為Ball(black,1KG) 和 Ball(black,21KG)
最接近Ball(black,11KG) ,而且Ball(black,1KG)比Ball(black,21KG)輕
如果我需要拿Ball(black,18KG) , 可以找到Ball(black,21KG) ,因為因為Ball(black,21KG)最接近Ball(black,11KG)
如果我需要拿Ball(Red,2KG) , 可以找到Ball(Red,15KG)
如果我需要拿Ball(Blue,15KG) , 找不到合適的球
代碼實例: 以下代碼沒有上機測試,只是幫助理解題意!可能存在錯誤,請自行參考更正!
//pojo
public class Ball{
private String color;
private int weight;
//省略get,set method!
}
//具體業務
public class BallManager{
private Set<Ball> crock; // 一個罎子
private Set<String> holdBalls; //想要取得的球
public Map<String,Ball> getBalls(){
// 返回的Map<String,Ball>,keys 為 holdBalls , values 為找到的球
// 請寫出具體的
}
} //測試
public class BallManagerTest extends junit.framework.TestCase{
public void testgetBall1(){
//構造罎子,裡面的數據我以例子裡面的數據
Set<Ball> crock = new HashSet<Ball>();
Ball ball_black1 = new Ball("BLACK",1);crock.add(ball_black1);
Ball ball_black21 = new Ball("BLACK",21);crock.add(ball_black21);
Ball ball_red15 = new Ball("RED",15);crock.add(ball_red15);
//構造想要取得的球
Set<String> holdBalls = new HashSet<String>();
holdBalls.add("black1");
holdBalls.add("black2");
holdBalls.add("blue15");
//調用業務
BallManager ballManager = new BallManager();
ballManager.setCrock(crock);
ballManager.setHoldBalls(holdBalls);
Map<String,Ball> res = ballManager.getBalls();
//測試結果!
//比較Ball("BLACK",1);
Ball b1 = new Ball("BLACK",1); //正確結果,測試者構造
Ball b2 = res.get("black1"); //程序得到結果
System.out.println(check(b1 ,b2)); //為true,表示測試成功 //比較Ball("BLUE",15);
b1 = null //正確結果,測試者構造
b2 = res.get("blue15"); //程序得到結果
System.out.println(check(b1 ,b2)); //為true,表示測試成功
}
private boolean check(Ball b1 , Ball b2){
if(b1==null && b2==null) {
return true;
}else if(b1==null || b2==null){
return false;
}else{
return b1.getColor().equalsIgnoreCase(b2.getColor()) && b1.getWeight==b2.getWeight;
}
}
}
没办法,在台湾公司中^.^(以上簡體用的是簡體輸入法,以下用繁體)
(推荐使用搜狗拼音输入法)打幾個繁體字證明證明~嘿嘿