• 设计模式(11)迭代器模式


    迭代器模式提供了一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。

    下面我们利用java自带的迭代器接口实现这个迭代器模式

    首先我们定义一个自定义的集合类,并实现它的迭代器

    public class Book {
    
        public Book(String name, Double price) {
            this.name = name;
            this.price = price;
        }
    
        /**
         * 名称
         */
        private String name;
        /**
         * 价格
         */
        private Double price;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Double getPrice() {
            return price;
        }
    
        public void setPrice(Double price) {
            this.price = price;
        }
    }
    public class MyCollection {
    
        private List<Book> dataList = new ArrayList<>();
    
        public void add(Book data) {
            dataList.add(data);
        }
    
        public void remove(Book data) {
            dataList.remove(data);
        }
    
        public MyIterator getIterator() {
            return new MyIterator(this.dataList);
        }
    }
    public class MyIterator implements Iterator<Book> {
    
        private List<Book> dataList;
    
        private int index;
    
        public MyIterator(List<Book> dataList) {
            this.dataList = dataList;
            index = 0;
        }
    
        @Override
        public boolean hasNext() {
            return index < dataList.size();
        }
    
        @Override
        public Book next() {
            return dataList.get(index++);
        }
    }

    测试

    public static void main(String[] args) {
            MyCollection collection = new MyCollection();
            collection.add(new Book("SQL从删库到跑路",66.6));
            collection.add(new Book("JAVA从入门到放弃",88.8));
    
            MyIterator iterator = collection.getIterator();
            while (iterator.hasNext()) {
                Book book = iterator.next();
                System.out.println("书名:"+ book.getName() + ",售价:" + book.getPrice());
            }
        }

    结果

  • 相关阅读:
    【centos】centos中添加一个新用户,并授权
    linux基础(10)-导航菜单
    linux基础(9)-获取时间
    linux基础(8)-颜色显示
    linux基础(8)-文件处理(awk 、sed、grep)
    linux基础(7)-IO重定向
    linux基础(6)-shell编程
    linux基础(5)-用户及权限
    linux基础(4)-常用命令
    linux基础(3)-java安装
  • 原文地址:https://www.cnblogs.com/oeleven/p/10640123.html
Copyright © 2020-2023  润新知