加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

java编程思想第四版第十一章习题

发布时间:2021-05-21 06:09:35 所属栏目:大数据 来源: https://www.jb51.cc
导读:第一题 package net.mindview.holding.test1;import java.util.ArrayList;import java.util.List; /* * * 沙鼠 * @author samsung * */ public class Gerbil { static int counter; gerbilNumber; public Gerbil(){ this .gerbilNumber = counter ++ ; } Str
  1. 第一题
    package net.mindview.holding.test1;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * 沙鼠
     * @author samsung
     *
     */
    public class Gerbil {
        static int counter;
         gerbilNumber;
        
        public Gerbil(){
            this.gerbilNumber = counter ++;
        }
        
         String hop(){
            
            return "沙鼠的号码:"+gerbilNumber + ,正在跳跃"void main(String[] args) {
            List<Gerbil> list = new ArrayList<Gerbil>();
            list.add(new Gerbil());
            list.add( Gerbil());
            for(Gerbil g: list){
                System.out.println(g.hop());
            }
        }
    }

    运行结果

    沙鼠的号码:0123,正在跳跃

    ?

  2. 第二题
    package net.mindview.holding.test2;
    
    import java.util.HashSet;
    import java.util.Set;
    
     SimpleCollection {
    
         main(String[] args) {
            Set<Integer> c = new HashSet<Integer>();
            for(int i = 0; i < 10; i++){
                c.add(i);
            }
            (Integer i: c){
                System.out.print(i + );
            }
        }
    
    }

    ?

  3. 第三题
    package net.mindview.holding.test3;
    
    import java.util.ArrayList;
    import java.util.List;
    
    *
     * 选择器
     interface Selector {
        //是否结束
        boolean end();
        当前
        Object current();
        下一个
         next();
    }
    
    
    *
     * 顺序
      Sequence {
        数组是有限制的,而集合时无限制的.
        private Object[] items;
        private List<Object> items;
        private int next = ;
        定义数组的个数
         Sequence(){
            items = new ArrayList<Object>();
        }
        添加
         add(Object x){
            items.add(x);
        }
        
        内部类--顺序选择器
         SequenceSelector implements Selector {
            选择器最开始指向第一个元素
            ;
            @Override
             boolean end() {
                return i == (items.size());
            }
            *
             * 新增方法: 在内部类中引用外部类
             */
             Sequence outer(){
                return Sequence.this;
            }
    
            @Override
             Object current() {
                return items.get(i);
            }
    
            @Override 
             next() {
                if(i<items.size()){
                    i++;
                }
            }
        }
        
         Selector selector() {
            return  SequenceSelector();
        }
        
        
        
         main(String[] args) {
            Sequence s =  Sequence();
            int i=0; i<){
                s.add(对象"+i);
            }
            Selector selector = s.selector();
            while(!selector.end()){
                System..print(selector.current());
                selector.next();
            }
        }
    
    }

    结果

    对象0对象1对象2对象3对象4对象5对象6对象7对象8对象9

    分析: 这个案例的重点是, 数组瘦受限制的, 集合是没有元素个数限制的。 因此,可以任意添加元素的意思就是:将数组替代为集合。

  4. 第四题
    package net.mindview.holding.test4;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collection;
    import java.util.HashSet;
    import java.util.LinkedHashSet;
    import java.util.LinkedList;
    import java.util.TreeSet;
     MoiveNameGenerator {
        String[] moives = {Snow White",Star WarsWhite PrincpleDreamMy MotherThe ForestMy Grandpa};
         next;
         String next(){
            String moive = moives[next];
            电影名用完之后,循环到这个字符列表的开始处
            next = (next+1) % moives.length;
            return moive;
        }
        
    }
     MoiveGenerator {
        MoiveNameGenerator moiveNameGenerator =  MoiveNameGenerator();
         String[] fill(String[] arr){
            0; i<arr.length; i++){
                arr[i] = moiveNameGenerator.next();
            }
             arr;
        }
        
         Collection fill(Collection col){
            5; i++){
                col.add(moiveNameGenerator.next());
            }
             col;
        }
        
         main(String[] args) {
            MoiveGenerator moiveGenerator =  MoiveGenerator(); 
            System.out.println(Arrays.toString(moiveGenerator.fill(new String[5])));
            System.out.println(moiveGenerator.fill(new ArrayList<String>()));
            System.new LinkedList<String>new HashSet<String>new LinkedHashSet<String>new TreeSet<String>()));
        }
    }

    运行结果:

    [Snow White,Star Wars,White Princple,Dream,My Mother]
    [The Forest,My Grandpa,Snow White,White Princple]
    [Dream,My Mother,The Forest,Snow White]
    [My Mother,White Princple]
    [My Grandpa,Dream]
    [My Grandpa,The Forest]

    ?

  5. dff
  6. af
  7. a
  8. fa
  9. fda
  10. sf
  11. af
  12. as
  13. fa
  14. fa
  15. 栈在编程语言中,经常用来对表达式求值。请使用net.mindview.util.Stack对下面的表达式求值。?其中“+”表示将后面的字母压入栈,“-”表示将栈顶的字母押出栈。并打印他们。

    package net.mindview.holding;
    
    import java.util.LinkedList;
    
    *
     * 模拟栈
     class Stack<T> {
        private LinkedList<T> storage = new LinkedList<T>();
        
        推入
         push(T v){
            storage.addFirst(v);
        }
        
         T peek(){
             storage.getFirst();
        }
        
        取出
         T pop(){
             storage.removeFirst();
        }
        
         boolean empty(){
             storage.isEmpty();
        }
        
         String toString(){
             storage.toString();
        }
    
    }
    package net.mindview.holding.test15;
    
    import java.util.Stack;
    
    *
     * 栈在编程语言中,经常用来对表达式求值。请使用net.mindview.util.Stack对下面的表达式求值。
     * 其中“+”表示将后面的字母压入栈,“-”表示将栈顶的字母押出栈。并打印他们。
     * @author samsung
     *
      Test15 {
        Stack<Character> stac = new Stack<Character>();
        计算
         eval(String str){
            char[] chars = str.tocharArray();
            0; i<chars.length; i++){
                char c = chars[i++];
                遇到+号把字符入栈
                switch (c){
                    case '+':
                        System.out.println(入栈:stac.push(chars[i]));
                        break;
                    -出栈:stac.pop());
                         main(String[] args) {
            Test15 t =  Test15();
            String str = +U+n+c---+e+r+t---+a-+i-+n+t+y---+ -+r+u--+l+e+s--;
            t.eval(str);
        }
    }

    ?

  16. fda
  17. fa
  18. fa
  19. dfa
  20. fa
  21. df
  22. asfd
  23. afa
  24. fa
  25. fa
  26. fa
  27. 二十七题
    package net.mindview.holding.test27;
    
    import java.util.LinkedList;
    import java.util.Queue;
    
    消息
     Command {
        String str;
         Command(String str){
            this.str = str;
        }
         operation(){
            System..println(str);
        }
    }
    
    生产者
     Producter{
        生产者生成消息
        public Queue<Command> produce(Queue<Command> qc){
            qc.offer(new Command(A));
            qc.offer(ABABCVFASDA));
             qc;
        }
    }
    
    消费者
     Customer {
        消费者消费消息
        void custom(Queue<Command> queue){
            while(queue.peek() != null){
                queue.remove().operation();
            }
        }
    }
    
     Test27 {
         main(String[] args) {
            Queue<Command> qc = new LinkedList<Command>();
            Producter producter =  Producter();
            Queue<Command> qcc = producter.produce(qc);
             Customer().custom(qcc);
    
        }
    }

    运行结果:

    A
    AB
    ABC
    VFA
    SDA

    ?

  28. fa
  29. 第三十一题
    package net.mindview.holding.test31;
    
    import java.util.Iterator;
    import java.util.Random;
    
    形状
     Shape {
         draw() {
        }
    
         erase() {
        }
    }
    
     圆形
     Cycle1 extends Shape {
    
        @Override
         draw() {
            System.draw cycle);
        }
    
        @Override
         erase() {
            System.erase cycle);
        }
    
    }
    
     Square extends Shape {
        @Override
        draw Square);
        }
    }
    
     矩形
     Triangle extends Shape {
        @Override
        draw Triangle 梯形
     Trapezoid extends Shape {
        @Override
        draw Trapezoidclass RandomShapeFactory implements Iterable<Shape> {
        Random random = new Random(47);
    
        private final  quantity;
    
        public RandomShapeFactory( quantity) {
            this.quantity= quantity;
        }
    
         下面画什么形状呢
         Shape nextShape() {
            switch (random.nextInt(4)) {
            default:
            :
                 Cycle1();
             Square();
             Triangle();
            3 Trapezoid();
            }
        }
    
        @Override
        public Iterator<Shape> iterator() {
            new Iterator<Shape>() {
                int count = ;
    
                @Override
                 boolean hasNext() {
                    return count < quantity;
                }
    
                @Override
                 Shape next() {
                    ++count;
                     nextShape();
                }
    
                @Override
                 remove() {
    
                }
            };
        }
    }
    
     Shapes {
         main(String[] args) {
            RandomShapeFactory rd = new RandomShapeFactory(9);
             (Shape s : rd) {
                System..println(s.getClass().getSimpleName());
            }
    
        }
    
    }

    运行结果

    Triangle
    Square
    Triangle
    Cycle1
    Cycle1
    Triangle
    Cycle1
    Square
    Triangle

    ?

  30. f
  31. afda

?

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读