工程一旦变大,随之而来的就是许多想象不到的过程。一个一万个类的java工程,全部编译一次的时间大约是20分钟。如果不去掉这个该死的勾,每次重新打开eclipse,第一次运行都要重新编译,一天浪费的时间就是半个多小时到一个小时不等。
要求数列[1,2,3]子集,结果应该如下(顺序无关):
[[],[1],[1,2],[1,2,3],[1,3],[2],[2,3],[3]]
如果用C语言求解,在CSDN上找到别人的代码如下
1 #define N 4
2 #include <stdio.h>
3 int used[N]={0};//加上
4
5 void output()
6 {
7 int i;
8 for(i=0;i<N;i++)if(used[i])printf("%d ",i+1);
9 printf("\n");
10 }
11
12 void f(int i)
13 {
14 if(i>=N)
15 {
16 output();
17 return;
18 }
19 f(i+1);
20 used[i]=1;
21 f(i+1);
22 used[i]=0;//加上
23 }
24
25 void main()
26 {
27 f(0);
28 getchar();
29 }
如果是Haskell呢?(不包括空集)
1 subsets :: [a] -> [[a]]
2 subsets [x] = [[x]]
3 subsets (x:xs) = [x] : [x:i|i<-s]++ s
4 where s = subsets xs
除去声明就三行还可以缩减到2行。且含义清楚。Haskell果然是一个研究算法最好的语言。
在Netbeans.tv下发布了一个新的视频,sun说以后数据库中的表就可以直接绑定到Swing的组件中了。并且给出了演示视频,感觉很强大,不仅仅是列表,连文本框,按钮全部都有。并且还演示了添加一个拖动组件来通过拖动获得1-10的整数作为评分栏的值。
整个技术当然是基于JPA持久层。整个视频的时间是5分多钟。
下面是视频的地址
http://www.netbeans.org/kb/60/java/swing-app-beans-binding-screencast.html
http://mediacast.sun.com/details.jsp?id=4029
如此的迅捷,完全是Hibernate不能相比的。
我个人疑惑的只是:绑定JPA和Swing?
看来JPA果然是支持J2SE,用Swing开发需要用到数据库的程序的时候,可以变得相当的方便。试想一下用JPA访问SQLite数据库来构建一个桌面程序。
之前还在慢慢看Hibernate,不过去了Hibernate的主页,Hibernate对于JPA和annotation更加是是否的推崇至极。最近JavaFX的发布,粗略的看过,觉得JavaFX下开发图形界面空前的简单,而且也可以放入Swing的组件。
这也意味着,以后不仅仅是Web,连客户端程序,和Applet,JavaFX都可以通过JPA敏捷开发。