zoukankan      html  css  js  c++  java
  • 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;
    }

    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);
                }
            }
        }
  • 相关阅读:
    UVa11324 最大团
    UVa11624 BFS
    UVa10047 BFS
    UVa11054 欧拉回路
    CF413B 水题
    UVa LA 4287 强连通 (类似 hdu 3836)
    hdu1540 线段树(区间合并)
    最少的扇形区域 ——贪心
    Little Busters! — 并查集
    筛1-n中每个数的因子(nlogn)
  • 原文地址:https://www.cnblogs.com/moveofgod/p/3769928.html
Copyright © 2011-2022 走看看