Java謎題:小丑
這是一系列Java難題中的第一個,它以挑戰性和有趣的方式讓您的Java技能經受考驗!
謎題由一些給定的Java程式碼組成,其中有一行似乎無法企及。由你來找到它的漏洞,使用Java的微妙行為來使執行完成。
謎題
你怎麼能把20個小丑裝進一輛大眾汽車?
提供兩個類:一個空小丑類和一個大眾類,您可以新增小丑。當您嘗試新增小丑時,會檢查它是否已滿。儘管你努力嘗試,總有多餘的小丑…
package clowns; public class Clown { } package clowns; import java.util.HashSet; import java.util.Set; public class Volkswagen { private static final int CAPACITY = 5; private Set<Clown> clowns = new HashSet<Clown>(); public synchronized void add(Clown clown) { if (clowns.size() >= CAPACITY) { throw new IllegalStateException("I'm full"); } else { clowns.add(clown); } } public synchronized void done() { if (clowns.size() == 20) { // The goal is to reach this line System.out.println("I'm a Volkswagen with 20 clowns!"); } } } |
寫一個類,當執行時將20個小丑推入小汽車,併到達標記線。這個不會真正起作用,只是為了讓你開始:
package you; import clowns.Clown; import clowns.Volkswagen; public class You { public static void main(String args[]) { // TODO put 20 clowns into a Volkswagen Volkswagen vw = new Volkswagen(); for (int i = 0; i < 20; i++) { vw.add(new Clown()); } vw.done(); } } |
相關文章
- Java謎題1:小丑 - 解決方案Java
- Java謎題5:球(ball)Java
- Java 謎題 2:夢境Java
- Java謎題3:汽車Java
- Java謎題6:雞與蛋Java
- Java 謎題 7:餅乾(Cookie)JavaCookie
- Java 謎題4:液體(Liquid)JavaUI
- Java謎題7:餅乾-解決方案Java
- Java謎題5:球(ball)-解決方案Java
- Java謎題3:汽車 - 解決方案Java
- Java謎題6:雞與蛋-解決方案Java
- 解謎遊戲謎題設計研究(三):推理類謎題設計遊戲
- 解謎遊戲謎題設計研究(一):物品類謎題設計遊戲
- 小丑路人瘋狂吧
- 解謎遊戲謎題設計研究(二):機關類謎題設計遊戲
- 除法謎題(2)
- 除法謎題(1)
- 平方謎題(15)
- 平方謎題(10)
- 平方謎題(11)
- 平方謎題(9)
- 平方謎題(13)
- 平方謎題(14)
- 平方謎題(16)
- 平方謎題(12)
- 平方謎題(7)
- 平方謎題(6)
- 平方謎題(8)
- 平方謎題(1)
- 平方謎題(5)
- 平方謎題(2)
- 平方謎題(4)
- 平方謎題(3)
- ◆Π謎宮2019◆(8月13日附加謎題)
- ◆Π謎宮2019◆(8月7日附加謎題)
- ◆Π謎宮2019◆(8月10日附加謎題)
- ◆Π謎宮2019◆(8月3日附加謎題)
- ◆Π謎宮2019◆(7月31日附加謎題)