Java基础,写一个flat函数
来源:互联网 发布:linux调用shell脚本 编辑:程序博客网 时间:2024/05/17 01:28
有这样一个需求,在一个A类中,有个一对象C数组arr,,对象里面有一个字段叫做x;在一个B类中,有一个对象D数组arr,对象里面有一个字段叫做y;有点晕,我们来看看对应的JavaBean
A.java
public class A{ public List<C> arr = new ArrayList<>(); static class C{ public int x = 1; }}
B.java
public class B { public List<D> arr = new ArrayList<>(); static class D{ public int y = 2; }}
现在的需求是,写一个函数来构造一个数组,具体是这样的,就是这个函数能遍历A类的C,把C中的x变成一个数组,也能够遍历B类的D,把D中的y变成一个数组。
借用flat函数的思想,我们可以这样想,问题的关键在与当我们用foreach遍历到对象的时候不可以去获取成员变量,就是我不知道是.x还是.y又要求用一个方法完成,所以接口大法来救你了,看代码吧。
MyClass.java
public class MyClass { public static void main(String args[]) { MyClass myClass = new MyClass(); A a = new A(); A.C c = new A.C(); a.arr.add(c); a.arr.add(c); a.arr.add(c); B b = new B(); B.D d = new B.D(); b.arr.add(d); b.arr.add(d); b.arr.add(d); List list = myClass.traverseArray(a.arr, new UtilFlat<A.C>() { @Override public Object flat(A.C o) { return o.x; } }); for (Object i: list) { System.out.println(i); } list = myClass.traverseArray(b.arr, new UtilFlat<B.D>() { @Override public Object flat(B.D o) { return o.y; } }); for (Object i: list) { System.out.println(i); } } private List traverseArray(List objectList, UtilFlat iFlat) { ArrayList<Object> list = new ArrayList<>(); for (Object o : objectList) { list.add(iFlat.flat(o)); } return list; } public interface UtilFlat<T>{ Object flat(T o); }}
总结:接口一定是延迟操作,把当前不能决策的操作延迟到实现的地方。
PS:感谢老大的教育之恩
阅读全文
0 0
- Java基础,写一个flat函数
- 如何用Java写一个交换函数
- 写一个atoi函数
- 写一个ServiceMain函数
- 用JAVA写一个函数交换两个数字
- 用JAVA写一个函数交换两个数字
- 用java写一个main函数实现排列组合
- Java利用可变参数函数写一个打印方法。
- java类为什么要写一个无参构造函数
- java语言实现:写一个函数,使字符串倒序
- ER.Flat业务基础平台介绍
- 写一个代理(java写一个接口)
- java写一个计算器
- java写一个死锁
- java写一个爬虫
- 写一个内存拷贝函数
- 如何写一个分段函数
- 写一个memcpy的函数
- 机器学习推荐
- 多线程编程
- 神经网络层数计算方法(综合)
- 从零实现一个高性能网络爬虫(二)应对反爬虫之前端数据混淆
- iOS 一一 通知机制
- Java基础,写一个flat函数
- 算法训练 矩阵乘方
- hbase开发环境搭建及运行hbase小实例(HBase 0.98.3新api)
- 三范式通俗解释
- 软件测试黑马工程师----数据库04(创建表约束)
- 优秀资料
- 使用Handler实现打地鼠(上)
- socket C/C++编程(9)windows server端面向对象化处理
- 学习《笨办法学python》习题11 遇到raw_input输入问题