程序笔记   发布时间:2022-07-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了迭代器-适配器方法惯用法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
package t20211225;

import java.util.*;

/**
 * @Author: DengJia
 * @Date: 2021/12/26 10:04
 * @Description: 顺序迭代、逆序迭代、乱序迭代
 */

public class IterableClass implements Iterable<String> {
    protected String[] words = ("1 2 3 4 5 6 7 8 9 0").split(" ");

    @Override
    public Iterator<String> iterator() {
        return new Iterator<String>() {
            privatE int index = 0;

            @Override
            public Boolean hasNext() {
                return index < words.length;
            }

            @Override
            public String next() {
                return words[index++];
            }

            @Override
            public void remove() {
                throw new UnsupportedoperationException();
            }
        };
    }

    public static void main(String[] args) {
        MultiIterableClass mic = new MultiIterableClass();
        System.out.print("顺序迭代:");
        for (String s : miC) {
            System.out.print(s + " ");
        }
        System.out.print("n逆序迭代:");
        for (String s : mic.reversed()) {
            System.out.print(s + " ");
        }
        System.out.print("n乱序迭代:");
        for (String s : mic.randomized()) {
            System.out.print(s + " ");
        }
    }
}

class MultiIterableClass extends IterableClass {
    public Iterable<String> reversed() {
        return () -> new Iterator<String>() {
            int current = words.length - 1;

            @Override
            public Boolean hasNext() {
                return current > -1;
            }

            @Override
            public String next() {
                return words[current--];
            }

            @Override
            public void remove() {
                throw new UnsupportedoperationException();
            }
        };
    }

    public Iterable<String> randomized() {
        return () -> {
            // 洗牌
            List<String> shuffled = new ArrayList<>(Arrays.asList(words));
            Collections.shuffle(shuffled, new Random(47));
            return shuffled.iterator();
        };
    }
}

顺序迭代:1 2 3 4 5 6 7 8 9 0 
逆序迭代:0 9 8 7 6 5 4 3 2 1 
乱序迭代:4 6 3 1 8 7 2 5 0 9 

大佬总结

以上是大佬教程为你收集整理的迭代器-适配器方法惯用法全部内容,希望文章能够帮你解决迭代器-适配器方法惯用法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。