最近看了js的一个“高阶函数”的概念,作者呢也做了一个例子,我觉得很不错,就摘抄下来了,
个人觉得代码很简单,但是思想很重要
代码如下:
package hb.main;
import hb.interfaces.Function;
import hb.tools.List;
public class TestFunction {
public static void main(String[] args) {
List list = new List(new int[]{1, 2, 3, 4, 5});
list.print();
list.map(new Function(){
public int execute(int x){
return x * 2;
}
});
list.print();
}
}
package hb.tools;
import hb.interfaces.Function;
public class List {
private int[] array;
public List(int[] array){
this.array = array;
}
public void map(Function func){
for(int i = 0, len = this.array.length; i < len; i++){
this.array[i] = func.execute(this.array[i]);
}
}
public void print(){
// System.out.println(this.array.toString());
StringBuffer sb = new StringBuffer();
sb.append("[");
for(int i = 0; i < this.array.length; i++){
sb.append(this.array[i]);
if(this.array.length-1!=i){
sb.append(",");
}
}
sb.append("]");
System.out.println(sb);
}
}
package hb.interfaces;
public interface Function {
public int execute(int x);
}