留下两个例子作为参考,
1. 追逐小方块的例子
2. HashMap 和 Iterator 的例子
Example one:
import acm.graphics.*; import acm.program.*; import java.awt.*; import java.awt.event.*; public class TargetSeeker extends GraphicsProgram { /* private constants */ private static final int TARGET_SIZE = 10; private static final int SEEKER_SIZE = 20; private static final int PAUSE_TIME = 10; public void run() { initTarget(); initSeeker(); addMouseListeners(); while (true) { seek(); } } private void initTarget() { targetSquare = new GRect(TARGET_SIZE, TARGET_SIZE); targetSquare.setColor(Color.red); targetSquare.setFilled(true); targetX = getWidth() / 2; targetY = getHeight() / 2; add(targetSquare, targetX - TARGET_SIZE/2, targetY - TARGET_SIZE/2); } private void initSeeker() { seeker = new GRect(SEEKER_SIZE, SEEKER_SIZE); add(seeker, 0, 0); } private int moveAmount(double seekerPos, double targetPos) { int amount = 0; if (targetPos > seekerPos) { amount = 1; } else if (targetPos < seekerPos) { amount = -1; } return amount; } private void seek() { pause(PAUSE_TIME); double seekerMidX = seeker.getX() + SEEKER_SIZE / 2; int dx = moveAmount(seekerMidX, targetX); double seekerMidY = seeker.getY() + SEEKER_SIZE / 2; int dy = moveAmount(seekerMidY, targetY); seeker.move(dx, dy); } public void mouseClicked(MouseEvent e) { targetX = e.getX(); targetY = e.getY(); remove(targetSquare); add(targetSquare, targetX - TARGET_SIZE/2, targetY - TARGET_SIZE/2); } /* private instance variable */ private int targetX; private int targetY; private GRect targetSquare; private GRect seeker; }
Example two:
public void PrintMatchingKeys(HashMap<String, String> map) { ArrayList<String> keys = new ArrayList<String>(); Iterator<String> it = map.keySet().iterator(); while (it.hasNext()) { // keys is array list, it is the key (String type) of map keys.add(it.next()); } // Reset "it" iterator to allow us to iterate over keys again it = map.keySet().iterator(); while (it.hasNext()) { String key = it.next(); String value = map.get(key); // of course contain if (key.contains(value)) { println(key + ": " + value); } } }