JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java SE 討論區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 J2SE5.0 新增的好用小功能 [精華]
popcorny

Jakarta 2%

版主

發文: 752
積分: 20
於 2004-10-12 14:14 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
好像很少人再討論5.0
那我就先拋磚引玉啦 大家有看到什麼好用的新功能也回post一下
5.0講究的是easy to use
所以多了一些好用的東西一定要介紹給大家

printf
在java中要怎麼用printf
這個是初學者一定會問的問題
終於在5.0出現了
1
System.out.printf("[%s]我今年%d歲", "popcorny", 18);

加上換行
1
System.out.printf("[%s]我今年%d歲", "popcorny", 18).println();

另外也有類似sprintf的method唷
1
String str = String.format("[%s]屁啦~", "moliwang");

其實主要這些功能都是由新的java.util.Formatter來提供的
可以去看一下這個class的javadoc

scanf
習慣用C的人輸出可能用printf
輸入的話可能喜歡用scanf
但是呢 在java沒有& (dereference)這個operator
所以我們沒辦法像scanf這樣使用
取而代之的 我們使用java.util.Scanner來達到這個目的
1
2
3
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
String name = sc.next();

也可以從字串輸入
1
2
3
4
5
6
Scanner sc = new Scanner("Add 1 2 3");
String op = sc.next();
int x = sc.nextInt();
int y = sc.nextInt();
int z = sc.nextInt();
sc.close();

在JAVA輸入輸出都變的更方便啦.^^


reply to postreply to post
作者 Re:J2SE5.0 新增的好用小功能 [Re:popcorny]
moliwang

用嘴巴打嘴炮比用鍵盤打嘴炮要來的務實

版主

發文: 1215
積分: 6
於 2004-10-12 15:29 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
從JDK 5.0之後,
javac指令已經可以接受 -cp 這樣的參數來取代 -classpath了.
這樣也算好用的小功能吧!Cool


reply to postreply to post
作者 Re:J2SE5.0 新增的好用小功能 [Re:popcorny]
popcorny

Jakarta 2%

版主

發文: 752
積分: 20
於 2004-10-12 15:39 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
UUID
UUID是Universally Unique IDentifier
他是一組128bit的數字
定義在 http://www.ietf.org/internet-drafts/draft-mealling-uuid-urn-03.txt
相信有寫過Windows程式的人對他不會太陌生

有時後我們在分散式的系統下 希望要產生唯一的一個ID
如果我們不希望用centralize的方式產生的話
我們可以用UUID來產生Unique ID
這個演算法讓我們幾乎不會產生重複的ID

使用方法也很簡單
UUID uuid = UUID.randomUUID();
System.out.printf("UUID : %s", uuid).println();
簡單到不行吧.. Wink


browser edited on 2004-10-12 16:20
reply to postreply to post
作者 Re:J2SE5.0 新增的好用小功能 [Re:popcorny]
Duncan

還隱隱作痛

版主

發文: 7816
積分: 39
於 2004-10-12 17:42 user profilesend a private message to usersend email to Duncanreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
popcorny wrote:
好像很少人再討論5.0
那我就先拋磚引玉啦 大家有看到什麼好用的新功能也回post一下
5.0講究的是easy to use
所以多了一些好用的東西一定要介紹給大家

printf
在java中要怎麼用printf
這個是初學者一定會問的問題
終於在5.0出現了
1
System.out.printf("[%s]我今年%d歲", "popcorny", 18);

加上換行
1
System.out.printf("[%s]我今年%d歲", "popcorny", 18).println();

另外也有類似sprintf的method唷
1
String str = String.format("[%s]屁啦~", "moliwang");

其實主要這些功能都是由新的java.util.Formatter來提供的
可以去看一下這個class的javadoc


能不能說明一下,不定個數參數是利用什麼樣的方式達成,有更改 VM spec 嗎?還是純粹靠 compiler sugar 達成。


Duncan edited on 2004-10-12 17:44
reply to postreply to post

給我
辣味豆腐 其餘免談
作者 Re:J2SE5.0 新增的好用小功能 [Re:Duncan]
moliwang

用嘴巴打嘴炮比用鍵盤打嘴炮要來的務實

版主

發文: 1215
積分: 6
於 2004-10-12 18:34 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
Duncan wrote:
能不能說明一下,不定個數參數是利用什麼樣的方式達成,有更改 VM spec 嗎?還是純粹靠 compiler sugar 達成。


compiler sugar,把所有參數化為一個array.

最近都在確認一些新功能的實際真相,
目前試過確定的, for each, enum, var agrs都是.
不過enum有加了一些attribute在class file裡面.


reply to postreply to post
作者 Re:J2SE5.0 新增的好用小功能 [Re:popcorny]
popcorny

Jakarta 2%

版主

發文: 752
積分: 20
於 2004-10-12 22:42 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
另外Generic也算是compiler suger
但是在classfile中多了signature這個attribute
這是用來紀錄generic type, parameterized type, 等的資訊
讓我們在seperate compilation的時候可以取得這些資訊
新的classfile format可以在這邊抓
http://java.sun.com/docs/books/vmspec/2nd-edition/ClassFileFormat-final-draft.pdf


reply to postreply to post
作者 Re:J2SE5.0 新增的好用小功能 [Re:popcorny]
koji

秒速5センチメートル

站長

發文: 8415
積分: 19
於 2004-10-13 00:55 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
不能忘記的其中之一就是foreach
1
2
3
4
5
6
7
8
9
10
List l = new ArrayList();
l.add("test1");
l.add("test2");
l.add("test3");
l.add("test4");
l.add("test5");
    
for(Object o : l){
  System.out.println(o);
}

但是實際上會是長
1
2
3
4
Object obj;
for(Iterator iterator = arraylist.iterator(); iterator.hasNext(); System.out.println(obj)){
    obj = iterator.next();
}

我記得iterator效率稍微較差...所以還是少用的好??
另外如果這樣,也得包synchronized.

koji


reply to postreply to post
JCConf Taiwan 2015 開始售票了!!
Facebook上的TWJUG社團,歡迎加入
作者 Re:J2SE5.0 新增的好用小功能 [Re:koji]
popcorny

Jakarta 2%

版主

發文: 752
積分: 20
於 2004-10-13 12:09 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
koji wrote:
但是實際上會是長
1
2
3
4
5
Object obj;
Iterator iterator = arraylist.iterator();
for(obj = iterator.next(); iterator.hasNext(); obj = iterator.next()){
    System.out.println(obj);
}


應該是變成紅色那樣比較可能
另外array也可以唷
1
2
3
4
String[] names = new String[]{"pop", "koji", "browser", "jini"};
for(String name : names){
    System.out.println(name);
}



我記得iterator效率稍微較差...所以還是少用的好??
另外如果這樣,也得包synchronized.
koji

效率唷.... 如果不是bottleneck的話 沒必要說不用
程式碼簡單明瞭可能會比較重要


reply to postreply to post
作者 Re:J2SE5.0 新增的好用小功能 [Re:koji]
hhocean





發文: 153
積分: 4
於 2004-10-13 13:41 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
koji wrote:
不能忘記的其中之一就是foreach
1
2
3
4
5
6
7
8
9
10
List l = new ArrayList();
l.add("test1");
l.add("test2");
l.add("test3");
l.add("test4");
l.add("test5");
    
for(Object o : l){
  System.out.println( o);
}




我剛剛試了一下這東西,
出錯這個錯誤訊息
1
Syntax error, 'for each' statements are only available if source level is 1.5

什麼叫做source level is 1.5??


reply to postreply to post
作者 Re:J2SE5.0 新增的好用小功能 [Re:popcorny]
koji

秒速5センチメートル

站長

發文: 8415
積分: 19
於 2004-10-13 13:49 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
1
2
3
for(obj = iterator.next(); iterator.hasNext(); obj = iterator.next()){
    System.out.println(obj);
}

這樣會少印一個.
跳過最後一個element.

popcorny wrote:
效率唷.... 如果不是bottleneck的話 沒必要說不用
程式碼簡單明瞭可能會比較重要

這倒是Tongue我太龜毛了一點呵呵..
另外,template的source讓我看的很痛苦.有人有一樣感覺嗎Q.Q

koji


reply to postreply to post
JCConf Taiwan 2015 開始售票了!!
Facebook上的TWJUG社團,歡迎加入
作者 Re:J2SE5.0 新增的好用小功能 [Re:hhocean]
Duncan

還隱隱作痛

版主

發文: 7816
積分: 39
於 2004-10-13 16:30 user profilesend a private message to usersend email to Duncanreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
hhocean wrote:
我剛剛試了一下這東西,
出錯這個錯誤訊息
1
Syntax error, 'for each' statements are only available if source level is 1.5

什麼叫做source level is 1.5??


編譯時要下 -source 1.5 option,這以前有提過(Yoshi)。


reply to postreply to post

給我
辣味豆腐 其餘免談
作者 Re:J2SE5.0 新增的好用小功能 [Re:koji]
moliwang

用嘴巴打嘴炮比用鍵盤打嘴炮要來的務實

版主

發文: 1215
積分: 6
於 2004-10-13 17:32 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
另外,template的source讓我看的很痛苦.有人有一樣感覺嗎Q.Q

不能同意你更多了,不知道為什麼,個人非常討厭generic >"<
連Java API DOC裡面只要出現角括號都會覺得很煩.


reply to postreply to post
作者 Re:J2SE5.0 新增的好用小功能 [Re:koji]
popcorny

Jakarta 2%

版主

發文: 752
積分: 20
於 2004-10-13 17:42 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
koji wrote:
這樣會少印一個.
跳過最後一個element.

也是
那應該改成這樣
1
2
3
4
5
Iterator iter = xxx.iterator();
while(iter.hasNext()){
    obj = iter.next()
    System.out.println(obj);
}

這樣應該就沒錯了吧..XD


reply to postreply to post
作者 Re:J2SE5.0 新增的好用小功能 [Re:moliwang]
popcorny

Jakarta 2%

版主

發文: 752
積分: 20
於 2004-10-13 17:48 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
moliwang wrote:
另外,template的source讓我看的很痛苦.有人有一樣感覺嗎Q.Q

不能同意你更多了,不知道為什麼,個人非常討厭generic >"<
連Java API DOC裡面只要出現角括號都會覺得很煩.

其實我還挺喜歡generic的
但是呢 我不喜歡generic method的寫法
舉個例子
1
static <T> ArrayList<T> llist(Enumeration<T> e) 

初次看到的時候看不懂
原來是這邊是定義一個type parameter T
我覺得改成
1
static ArrayList<T> list<T>(Enumeration<T> e)

我可能會覺得明瞭一點
(雖然還是不太好懂... 有空來介紹一下generic好了..XD)


reply to postreply to post
作者 Re:J2SE5.0 新增的好用小功能 [Re:popcorny]
koji

秒速5センチメートル

站長

發文: 8415
積分: 19
於 2004-10-13 18:10 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
popcorny wrote:
其實我還挺喜歡generic的
但是呢 我不喜歡generic method的寫法

我可能會覺得明瞭一點
(雖然還是不太好懂... 有空來介紹一下generic好了..XD)

我是看到這種極端一點的
1
2
static<T> boolean addAll(Collection<? super T> c, T... a) 
static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll) 

會瞞想翻桌的!!
還沒看習慣,還瞞暈頭的哈哈

koji


reply to postreply to post
JCConf Taiwan 2015 開始售票了!!
Facebook上的TWJUG社團,歡迎加入
作者 Re:J2SE5.0 新增的好用小功能 [Re:popcorny]
moliwang

用嘴巴打嘴炮比用鍵盤打嘴炮要來的務實

版主

發文: 1215
積分: 6
於 2004-10-13 19:29 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
popcorny wrote:
其實我還挺喜歡generic的
但是呢 我不喜歡generic method的寫法
舉個例子


你說出我心裡的話. 如果以後popcorny有機會
設計程式語言,記得改好一點呀!Big Smile


reply to postreply to post
作者 Re:J2SE5.0 新增的好用小功能 [Re:koji]
T55555

Java, Ruby, Haskell

版主

發文: 1026
積分: 24
於 2004-10-13 22:57 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
koji wrote:
... 但是實際上會是長
1
2
3
4
Object obj;
for(Iterator iterator = arraylist.iterator(); iterator.hasNext(); System.out.println(obj)){
    obj = iterator.next();
}
...


Use javap to disassemble the code and you will know what it looks like ...
1
2
3
4
5
6
7
8
9
10
11
import java.util.*;
public class A {
    public static void main(String[] args) {
        List l = new ArrayList();
        l.add("test1");
 
        for(Object o : l) {
            System.out.println(o);
        }
    }
}

javap -c A, got:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
c:\> c:\java\jdk_1.5.0\bin\javap -c A
Compiled from "A.java"
public class A extends java.lang.Object{
public A();
  Code:
   0:   aload_0
   1:   invokespecial   #1; //Method java/lang/Object."<init>":()V
   4:   return
 
public static void main(java.lang.String[]);
  Code:
   0:   new     #2; //class java/util/ArrayList
   3:   dup
   4:   invokespecial   #3; //Method java/util/ArrayList."<init>":()V
   7:   astore_1
   8:   aload_1
   9:   ldc     #4; //String test1
   11:  invokeinterface #5,  2; //InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
   16:  pop
   17:  aload_1
   18:  invokeinterface #6,  1; //InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
   23:  astore_2
   24:  aload_2
   25:  invokeinterface #7,  1; //InterfaceMethod java/util/Iterator.hasNext:()Z
   30:  ifeq    50
   33:  aload_2
   34:  invokeinterface #8,  1; //InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
   39:  astore_3
   40:  getstatic       #9; //Field java/lang/System.out:Ljava/io/PrintStream;
   43:  aload_3
   44:  invokevirtual   #10; //Method java/io/PrintStream.println:(Ljava/lang/Object;)V
   47:  goto    24
   50:  return
 
}


Arglist (不定個數參數) is compiler sugar too...
Just wirte a simple test code and use javap then you could find out it is compiler sugar or not.


T55555 edited on 2004-10-13 23:00
reply to postreply to post
作者 Re:J2SE5.0 新增的好用小功能 [Re:T55555]
koji

秒速5センチメートル

站長

發文: 8415
積分: 19
於 2004-10-13 23:40 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
T55555 wrote:
Use javap to disassemble the code and you will know what it looks like ...


ya.我用javap跟jad來跑出來的..
Tongue只是我直接貼過來.
btw
1
2
3
4
Object obj;
for(Iterator iterator = arraylist.iterator(); iterator.hasNext(); System.out.println(obj)){
    obj = iterator.next();
}


and

1
2
3
4
5
Iterator iter = xxx.iterator();
while(iter.hasNext()){
    obj = iter.next()
    System.out.println(obj);
}


are the samething..

koji


reply to postreply to post
JCConf Taiwan 2015 開始售票了!!
Facebook上的TWJUG社團,歡迎加入
作者 Re:J2SE5.0 新增的好用小功能 [Re:koji]
popcorny

Jakarta 2%

版主

發文: 752
積分: 20
於 2004-10-14 10:33 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
雖然是同一件事情
但是我覺得loop的內容放在 for(...;...;這裡)
有點怪怪的
如果你的loop裡面有很多的statement
那要怎麼塞阿?


reply to postreply to post
作者 Re:J2SE5.0 新增的好用小功能 [Re:popcorny]
T55555

Java, Ruby, Haskell

版主

發文: 1026
積分: 24
於 2004-10-14 11:51 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
popcorny wrote:
雖然是同一件事情
但是我覺得loop的內容放在 for(...;...;這裡)
有點怪怪的
如果你的loop裡面有很多的statement
那要怎麼塞阿?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.util.*;
 
public class Test {
  public static void main(String[] args) {
    List list = new ArrayList() { { add("String#1"); add("String#2"); }};
    int x = 0, y = 1;
    Object obj = null;
    for (Iterator i = list.iterator(); i.hasNext();
         System.out.println("Try to put many statement"),
         System.out.println("You got the idea ..."),
         x ++, y --, x = y == 0 ? 1 : 2,
         System.out.println(obj)) {
      obj = i.next();
    }
  }        
}


reply to postreply to post
作者 Re:J2SE5.0 新增的好用小功能 [Re:T55555]
popcorny

Jakarta 2%

版主

發文: 752
積分: 20
於 2004-10-14 13:30 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
T55555 wrote:
1
2
3
4
5
6
7
    for (Iterator i = list.iterator(); i.hasNext();
         System.out.println("Try to put many statement"),
         System.out.println("You got the idea ..."),
         x ++, y --, x = y == 0 ? 1 : 2,
         System.out.println(obj)) {
      obj = i.next();
    }


那如果有兩層for loop呢 Wink


reply to postreply to post
作者 Re:J2SE5.0 新增的好用小功能 [Re:popcorny]
koji

秒速5センチメートル

站長

發文: 8415
積分: 19
於 2004-10-14 13:39 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
popcorny wrote:
那如果有兩層for loop呢 ;)

這時候就乖乖的把
iterator.next();另外拿出來吧,呵呵
1
2
3
4
for(Iterator iterator = arraylist.iterator(); iterator.hasNext();){
    Object obj1 = iterator.next();
    :
}

翻譯問題罷了^^"只是那時因為剛好抓了新的jad他幫忙翻成這樣

koji


reply to postreply to post
JCConf Taiwan 2015 開始售票了!!
Facebook上的TWJUG社團,歡迎加入
作者 Re:J2SE5.0 新增的好用小功能 [Re:popcorny]
popcorny

Jakarta 2%

版主

發文: 752
積分: 20
於 2004-10-14 13:54 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
Auto Boxing
我們都知道java中有八大基本型態(primitive type)
int short long byte float double char bool
其他都是參照型態(reference type)
而我們要把基本型態轉成參照型態就會使用每個基本型態的wrapper

1
2
3
Integer i = new Integer(5);
Double d = new Double(3.3);
Double d = 3.3;   //illegal in 1.4 and previous version

在J2SE5.0就會自動幫你做完這個動作
1
Double d = 3.3;   //OK

等同於
1
Double d = new Double(3.3);


Auto Unboxing
Auto Boxing是primitive -> reference
而Auto Unboxing則是reference->primitive
剛好相反
1
2
Double d = 3.3;   //boxing
double d2 =  d;    //unboxing

這邊就等同於
1
double d2 = d.doubleValue();


以基本型態帶入generic type的型態參數
如果我們想要用int為內容的ArrayList
我們可能會想要這麼寫
1
ArrayList<int> intList = new ArrayList<int>();  //illegal

但是因為type parameter一定要是reference type
所以這樣是違法的
因此我們要改成這樣寫
1
ArrayList<Integer> intList = new ArrayList<Integer>(); //OK

這樣就可以用了
但是你可能會想到那不是還是跟以前一樣麻煩
加進去也是要轉換成wrapper
不用!!!
因為我們有Autoboxing跟unboxing
1
2
3
4
5
6
ArrayList<Integer> intList = new ArrayList<Integer>();
intList.add(3);  //auto boxing
intList.add(5);  //auto boxing
intList.add(100); //auto boxing
int x = intlList.get(0); //auto unboxing
int y = intList.get(1); //auto unboxing


在enhanced for loop使用primitive type
在剛剛的intList中這樣使用可以嘛
1
2
3
for(int i : intList){
    System.out.printf("the number is %d", i).println();
}

答案是可以的
因為我們型態是ArrayList<Integer>
所以他就是有實作Iterable<Integer>
因此我們可以展開成
1
2
3
4
5
Iterator<Integer> iter = intList.iterator();
while(iter.hasNext()){
    int i = iter.next();   //return type is Integer
    System.out.printf("the number is %d", i).println();
}

而int i = iter.next();這邊有使用了auto unboxing
所以當然也是合法的囉

所以最後一個例子使用了generic, enhanced for loop, auto unboxing
感覺好像玩格鬥遊戲的連續技
還挺有趣的吧 Tongue


popcorny edited on 2004-10-14 14:02
reply to postreply to post
作者 Re:J2SE5.0 新增的好用小功能 [Re:popcorny]
popcorny

Jakarta 2%

版主

發文: 752
積分: 20
於 2004-10-15 14:26 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
Autoboxing不只是可以用在"=" (assignment)這個運算子上
還可以用在其他的運算之上
以下是一個計算出現次數的例子

1
2
3
4
5
6
7
8
9
10
String[] names = new String[]{"popcorny", "James", "duke", "popcorny"};
HashMap<String, Integer> map = new HashMap<String, Integer>();
for(String name: names){
    Integer freq = map.get(name);
    map.put(name, freq == null? 1 : freq + 1);
}
 
for(String name: map.keySet()){
    System.out.printf("[%s = %d]", name, map.get(name)).println();
}


reply to postreply to post
作者 Re:J2SE5.0 新增的好用小功能 [Re:popcorny]
jiaming





發文: 23
積分: 0
於 2004-10-16 00:01 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
提供一下,若要寫動態參數的 method, 就像 printf() 的功能一樣,做法如下:
1
2
3
4
5
6
7
8
9
10
11
public static Integer sum(Integer... args) {
    int sum = 0;
    for (int value : args) {
        sum += value;
    }
    return sum;
}
 
public static void main(String[] args) {
    System.out.printf("1 + 3 + 5 + 7 + 9 = %d\n", sum(1, 3, 5, 7, 9));
}

三個紅點即是代表動態參數。


reply to postreply to post
go to first page go to previous page  1   2   3  go to next page go to last page
» JWorld@TW »  Java SE 討論區

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8