易截截图软件、单文件、免安装、纯绿色、仅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中转义字符


1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377'
      \0:空字符
2.Unicode转义字符:\u + 四个十六进制数字;0~65535
     \u0000:空字符
3.特殊字符:就3个
      \":双引号
     \':单引号
 &nbs ......

java实现资源下载

/Download   by   HTTP  
//For   other   protocol,   do   it   yourself  
import   java.net.*;  
import   java.io.*;  
public   class   DonwLoa ......

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值传递(call by value)

public class Foo {
 static void operate(StringBuffer x,StringBuffer y){
  x.append(y);
  y=x;
 }
 public static void main(String args[]){
  StringBuffer a = new StringBuffer("A");
  StringBuffer b = new StringBuffer("B");
  
& ......

关于java中的URL类的使用一个问题


      我使用URL类来访问FTP服务器,当地址中没有中文时没有问题,但是
    当ftp中的文件夹有中文时,就无法访问了,我试过encoder和decoder类,都不行,有什么解决方法么?
            URL now = new URL("ftp://202.204.208.124/软件/");
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号