java arraylist 函数_使用Java-8中的函数ArrayList
问题描述:
我希望能够使用从另一个类传入的函数的ArrayList(其中函数已在其他类中定义).如果在一个类中定义了可能具有不同输入和返回类型的函数列表,我希望能够将其中一些的ArrayList(可能有重复项)作为参数传递给其他类的构造函数或方法,使用它们执行操作.
代码说明:
下面的代码是一个非常简化的示例,从设计的角度来看并不是很有意义.问题的焦点是SomeClass中的方法getResult(),以及一旦拥有它们,通常如何使用函数的ArrayList.
尝试解决问题:
getResult()方法实现是使用函数列表的许多尝试之一的示例.再次,请不要介意代码的设计.它就是这样做的,试图让问题的例子尽可能短.
简单的测试类
package com.Testing;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.function.Function;
public class Tester {
public static void main(String[] args)
{
// Some functions
Function increment = (Integer input) -> {
return input + 1;
};
Function decrement = (Integer input) -> {
return input - 1;
};
Function timesPi = (Double input) -> {
return input * 3.14;
};
// list of Functions
List availableMathOperations = new ArrayList<>();
List selectedMathOperations = new ArrayList<>();
// populate master list
availableMathOperations.add(increment);
availableMathOperations.add(decrement);
availableMathOperations.add(timesPi);
// Populate random selection list //
// generate random binary number
Random randomGenerator = new Random();
int randomNumber = randomGenerator.nextInt(availableMathOperations.size() * 2);
boolean[] bits = new boolean[availableMathOperations.size()];
for (int j = 0; j < availableMathOperations.size(); j++) {
bits[availableMathOperations.size() - 1 - j] = (1 << j & randomNumber) != 0;
}
// add math operations to selectedMathOperations based on binary number
for (int j = 0; j < bits.length; j++) {
if (bits[j]){
selectedMathOperations.add(availableMathOperations.get(j));
}
}
SomeClass someClass = new SomeClass(selectedMathOperations, 1.23);
}
}
其他课程
package com.Testing;
import java.util.List;
import java.util.function.Function;
public class SomeClass {
List operations;
double initialValue;
public SomeClass(List newOperations, double newInitialValue){
operations = newOperations;
initialValue = newInitialValue;
}
public double getResult(){
double result = 0.0;
// problem method
// perform the random list of operations using the initial value initially
for(int i = 0; i < operations.size(); i++){
if(i == 0)
result = operations.get(i)(initialValue);
else
result += operations.get(i)(result);
}
return result;
}
}
java arraylist 函数_使用Java-8中的函数ArrayList相关推荐
- python的matplotlib库内的函数_如何在matplotlib中找到函数下面的区域?
我是python和matplotlib库的新手,我试图在绘图中得到函数行下方的区域.我有一个变量a&:b,它在我的绘图中移动一个矩形.我也许可以使用原始数学来解决这个问题,但我想知道是否 ...
- java中parseint函数_浅谈 js中parseInt函数的解析
首先还是从很热门的实例parseInt("09")==0说起. parseInt(number,type)这个函数后面如果不跟第2个参数来表示进制的话,默认是10进制. 比如说pa ...
- matlab中的mkdir函数_科学网—Matlab中计算函数运行时间的三种方法及判断新建文件夹 - 张伟的博文...
(一)运行时间 1.tic和toc组合 计算daotic和toc之间那专段程序之间的属运行时间,它的经典格式为 : tic 函数 toc 复制函数代码,当代码遇到tic时Matlab自动开始计时,运行 ...
- bash中的grep函数_如何在Bash中编写函数
bash中的grep函数 在编程时,实际上是在定义要由计算机执行的过程或例程 . 一个简单的类比将计算机编程与烤面包进行比较:您一次列出了要设置工作环境的成分,然后列出了最终要面包所必须采取的步骤. ...
- python with函数_详解Python中startswith()函数与endswith函数的使用方法
下面小编就为大家带来一篇老生常谈Python startswith()函数与endswith函数.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 函数:startswit ...
- linux java jar打包_【Java】Java程序打包成jar包在Linux上运行
当需要把在Windows上开发的Java程序用在Linux上运行时,就需要吧该Java程序打包成jar包上传到Linux上去运行. 1.Java程序用MyEclipse打包成可运行的jar包 (1)在 ...
- matlab中floor函数,floor函数_怎么在excel中使用floor函数
floor函数即上取整函数,是计算机C语言中的数学函数,与ceil函数相对应.但是它在excel中却是另一种含义,FLOOR函数是向下舍入为最接近指数基数的倍数,下面小编就教你怎么在excel中使用f ...
- 数据库创建函数_达梦数据库创建UUID函数
数据库创建函数_达梦数据库创建UUID函数 接触达梦数据库有一段时间了,整理了一些资料,今天分享一下达梦数据UUID自定义函数 UUID函数定义 很多数据库都有提供UUID函数,可是接触达梦数据库后, ...
- swap函数_[C++基础入门] 6、函数
点击上方 蓝字 关注我呀! [C++基础入门] 6.函数 文章目录 6 函数 6.1 概述 6.2 函数的定义 6.3 函数的调用 6.4 值传递 6.5 函数的常见样式 6.6 函数的声明 6.7 ...
- matlab roundn函数_columns函数的使用方法 matlab中round函数具体用法
Excel中column函数的使用方法是什么?其实小编会说分手是想被挽留,你却顺口祝小编自由. 只读属性,返回 TextStream 文件中当前字符位置的列号. 语法: =Column(referen ...
最新文章
- phonegap调用摄像头
- java输出回文数原代码_JAVA怎么用循环语句编写一个判别是否为回文数的代码?...
- POJ-1384 Piggy-Bank 多重背包变形
- 面试官问单表数据量大一定要分库分表吗?我们用六个字和十张图回答
- 数据结构思维 第九章 `Map`接口
- mysql开启binlog日志影响性能吗_mysql binlog日志优化及思路
- 第 2 章 类加载子系统
- Erlang编程语言的一些痛点
- js+canvas绘制360加速球
- [Campus]我的大学
- 沸腾新十年 | 中国语音产业江湖和科大讯飞的前半生...
- 出家12年,北大数学天才柳智宇下山还俗:从事心理咨询,主动要求降薪至2万...
- 整理总结:英语口语发音技巧
- linux ping -w 命令,Linux ping 命令
- 打印纸张规格“XXX”不见了
- 灵性图书馆:好书推荐-《把好运吸过来》
- 除了 xshell,还有什么类似的好用的软件
- MT4电脑版下载和安装
- 《权威指南》笔记 - 9.1-9.2 类和原型、构造函数
- s3c2440 IIC AT24C08 (II)非中断模式
热门文章
- python安装步骤3.7.2-linux环境安装python3.7.2
- python培训班哪些比较好-在线Python编程培训哪家机构比较好?
- python画图代码星星-Python打印“菱形”星号代码方法
- 脚本编程语言python语言-python语言是脚本语言吗
- 零基础python从入门到精通 pdf-跟老齐学Python从入门到精通
- python现在好找工作吗-学完Python好找工作吗?为什么有人学完找不到工作?
- python英语单词大全-使用Python进行英文单词分割
- python第三方库是什么意思-Python最强大的第三方库,你有必要了解一下!
- 精通python设计模式-浅谈Python设计模式 - 原型模式
- 学python就业要看哪些书-学习Python适合就业哪些岗位?老男孩Python学习