首页 > 代码库 > Java 07 example

Java 07 example

留下两个例子作为参考,

1. 追逐小方块的例子

2. HashMap 和 Iterator 的例子

 

Example one:

aimage

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;
}
<style></style>

 

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);
            }
        }
    }
<style></style>