工程一旦變大,隨之而來的就是許多想象不到的過程。一個一萬個類的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敏捷開發。