延迟方法的调用---排列数字的大小(Supplier)

package tompeixun.demo05;

import java.util.Arrays;
import java.util.function.Supplier;

//通过Supplier<T>接口求数组最大值
public class Demo02 {
    public static int getMax(Supplier<Integer> supplier) {
        return supplier.get();
    }

    public static void main(String[] args) {
        int[] array = {2, 5, 1, 6, 0};
        int maxValue = getMax(new Supplier<Integer>() {
            @Override
            public Integer get() {
                int max = array[0];//假设数组的第一个元素为最大值
                //然后开始遍历数组,如果一个值大于max,则把该值赋给max
                //这样循环一遍下来,max保存的就是数组中的最大值
                for (int item : array
                        ) {
                    if (item > max) {
                        max = item;
                    }
                }
                return max;
            }
        });
        System.out.println(Arrays.toString(array));
        System.out.println("匿名内部类求该数组最大值:" + maxValue);

        int maxValue2 = getMax(() -> {
                    int max = array[0];//假设数组的第一个元素为最大值
                    //然后开始遍历数组,如果一个值大于max,则把该值赋给max
                    //这样循环一遍下来,max保存的就是数组中的最大值
                    for (int item : array
                            ) {
                        if (item > max) {
                            max = item;
                        }
                    }
                    return max;
                }
        );

原文地址:https://www.cnblogs.com/GooKiki/p/11429110.html

时间: 2024-08-06 00:42:02

延迟方法的调用---排列数字的大小(Supplier)的相关文章

数字比较大小脚本

用if语句的两种方法来判断两个数字的大小. 第一种: #!/bin/bash a=$1 b=$2 #参数的个数不等于2的情况下 [ $# -ne 2 ]&&{         echo "USAGE:$0 NUM1 NUM2"         exit 1 } #计算返回值 expr $a + 0 &>/dev/null RETVAL1=$? expr $b + 0 &>/dev/null RETVAL2=$? #返回值的结果必须都为0  $

一种延迟方法调用的实现

原文:一种延迟方法调用的实现 需求场景 最近遇到一种场景,需要延迟某个步骤的实现,以便在延迟的过程中能够及早处理,从而取消任务. 比如,现在的服务器CPU过高了,则系统记录下来,然后开始发送邮件通知用户,但是如果在10秒之内CPU恢复了:或者我不希望用户得知这个CPU的信息,因为我就在现场,我可以及时知道怎么处理这种情况,这个时候准备拨打电话的这个方法的调用就不能被执行,需要延迟一段时间,以便能够被取消——以上场景仅供参考. 代码实现 以下是我的一个实现方式,供大家讨论,或者有更好的方式可以改进

c#类的方法表的建立和方法的调用

对于方法的调用,很是令我头疼,什么静态方法,实例方法,实例虚方法,这里查了很多资料,总结如下: 这里声明,我也是菜鸟,这里只讨论方法的调用相关的技术,属于个人理解,如有错误,请指正 思路: 1 clr在加载类型的过程中方法表是怎么样构建的? 2 在程序调用方法时是怎样确定使用哪个类型的方法表的? 3 在程序调用方法时是怎样确定方法在方法表中的位置的(位于方法表的第几个方法)? 一 .方法在方法表中的排列顺序: 继承的实例虚方法.实例虚方法.构造函数.静态方法.实例方法 方法表排列原则: 1 在类

iOS的layoutSubviews和drawRect方法何时调用

layoutSubviews在以下情况下会被调用: 1.init初始化不会触发layoutSubviews.2.addSubview会触发layoutSubviews.3.设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化.4.滚动一个UIScrollView会触发layoutSubviews.5.旋转Screen会触发父UIView上的layoutSubviews事件.6.改变一个UIView大小的时候也会触发父UIView上的layoutS

UIView的layoutSubviews和drawRect方法何时调用 ———转

转自:http://jianyu996.blog.163.com/blog/static/112114555201305113018814/ 首先两个方法都是异步执行.layoutSubviews方便数据计算,drawRect方便视图重绘. layoutSubviews在以下情况下会被调用: 1.init初始化不会触发layoutSubviews. 2.addSubview会触发layoutSubviews. 3.设置view的Frame会触发layoutSubviews,当然前提是frame的

什么导致Finalize方法被调用

Finalize方法在垃圾回收结束时被调用,下面有5种事件会导致开始垃圾回收 1.第0代已满    第0代已满,垃圾回收会自动开始.该事件是目前导致Finalize方法被调用的最常见的一种方式,因为虽然应用程序的运行并分配新对象,这个事件会自然而然的发生. 2.代码显示调用System.GC的静态方法Collect   代码可以显示的请求CLR执行垃圾回收.虽然Microsoft强烈建议不要这样做,但某些时候还是必要的. 3.Windows报告内存不足   CLR内部使用Win32 Create

JS 判断两个数字的大小

今天使用 Javascript 比较两个数字的大小,发现了 19 > 100 的现象,什么原因呢? 解决: var 定义的变量默认是字符串,比较两个字符串变量和比较两个数字的规则不同.所以应该先把字符串转化成数字,再去比较大小,如下代码: var counts = $("input[name='counts']").val(); var realCounts = $("input[name='realCounts']").val(); // 错误的比较方法 i

UIView的layoutSubviews和drawRect方法何时调用

首先两个方法都是异步执行.layoutSubviews方便数据计算,drawRect方便视图重绘. layoutSubviews在以下情况下会被调用: 1.init初始化不会触发layoutSubviews. 2.addSubview会触发layoutSubviews. 3.设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化. 4.滚动一个UIScrollView会触发layoutSubviews. 5.旋转Screen会触发父UIView上的

Xutils源码文件下载方法的调用流程

//我主要是好奇Xutils是在哪里回调onLoading(),找老半天没找到,好不容易找到就写下来吧 前言: 1.仅对主要代码行进行摘要,提供大致流程 2.为便于理解,本文变量名不同于源码变量名,而是类名的驼峰式写法.如源码中:WorkRunnable mWorker,在本文中为 workRunnable 3.需要配合看Xutils的源码,可以让你开Xutils源代码时减少一定的难度 代码主干: HttpFragment: //HttpFragment是Xutils自带例子中的一个类 http