易截截图软件、单文件、免安装、纯绿色、仅160KB

在java中使用委托实现map/filter

在java中,假设你有一个user 对象的list,此user对象封装了用户的id, first name, last name and age. 然后你想调用一个web service(eg. UserService.deleteUsersByIds(List<Integer> userIds) 去删除数据库中指定的这些user。  听起来似乎不太困难,不是么? 你所需要只是将 List<User> 转化成List<Integer>。 所有你先写下下面的代码:
 List<Integer> ids = new ArrayList<Integer>(users.size());
for (User user : users) {
ids.append(user.getId());
}

 
然后你继续使用您的ID list,这一切都非常好。
但是,两分钟后,你会发现自己不得不为获取一个String型的用户名列表而重新定义一个API方法。
List<String> names = new ArrayList<String>(users.size());
for (User user : users) {
names.append(new StringBuilder(user.getFirstNam()).append(" ").append("user.getLastName()));
}

或许你还需要一个21岁以下的user list。
List<User> newUsers= new ArrayList<User>(users.size());
for (User user : users) {
if(user.getAge()<21){
newUsers.add(user);
}
}
  
或许你还需要的更多。。。。
很快你发现这件事情变得很乏味。
根据目前情形,你会发现这里有2个非常重要的功能 map 和filter
1.map(coll, f):遍历集合coll, 在集合中调用f的方法,将f的方法处理结果装入一个集合返回(也就是调用f中的方法组装另外一个需要的集合,然后返回)。
2.filter(coll, f):遍历集合coll, 在集合中调用f的方法,当f(element) returns true 将结果装入一个集合返回。
为了达到上面得到Id 的List我们可能需要这样中
<fromType, ToType> List<ToType> map(ArrayList<fromType> list) {
List<ToType> retval = new ArrayList<ToType>(list.size());
for (fromType item : list) {
[...]
}
return retval;
}

这样看起来似乎跟下面的code没有什么区别。
1 List<Integer> ids = new ArrayList<Integer>(users.size());
2
for (User user : users) {
3
  ids.append(user.getId());
4
}
由于java不提供语言级别的委托,因此我们需要为这个委派提供一个接口
1
interface


相关文档:

java IO操作 (读写、追加、删除、移动、复制等)


一、多种方式读文件内容。
1、按字节读取文件内容
2、按字符读取文件内容
3、按行读取文件内容
4、随机读取文件内容
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java ......

JAVA方法调用效率差别

  最近需要做一些JAVA底层操作,为了尽可能提高效率做了如下测试。
  在同一个类中建立普通的PUBLIC方法和PUBLIC STATIC 方法两种,并使用JUnit进行多次循环。最终证明使用对象的方式调用效率高。
  上结果。
起始时间Fri Mar 05 10:15:37 CST 2010结束时间Fri Mar 05 10:15:38 CST 2010时间间隔891
起始时间Fri ......

java 乱码问题


1、中文问题的来源

由于Java

言内部采用UNICODE编码,所以在JAVA
程序运行时,就存在着一个从UNICODE编码和对应的操作系统及浏览器支持的编码格式

换输入、输出的问题,这个转换过程有着一系列的步骤,如果其中任何一步出错,则显示出来的汉字就会出是乱码,这就是我们常见的JAVA

文问题。几乎所有的 ......

java环境变量配置

windows xp下配置JDK环境变量:
      1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:\java\jdk1.5.0_08;
  2.安装完成后,右击“我的电脑”,点击“属性”;
      3.选择“高级”选项卡,点击“ ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号