Re: [閒聊] 1.5 出現的多重參數

看板java作者 (!H45)時間18年前 (2007/08/16 15:58), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/5 (看更多)
※ 引述《TonyQ (骨頭)》之銘言: : 很久以前就知道的東西 , 不過一直沒有機會拿出來用 , : 加上是限定 1.5 以後才有的新特性 ..... : 不過既然最近會用到,拿來說嘴一下也好。:P 恕刪 : 如果有人知道這有甚麼其他用途的話,倒是希望不吝分享一下...XD 我最近也用到了,可以用在「平均」的運算 /** * Compute the average number of input sequence. * * @param x input sequence of x1, x2, ... xn * @return the average of x */ private static int average(int ... x) { int result = 0; for (int i: x) { result += i; } result /= x.length; return result; } 推廣出去的話,所有統計類的運算都適用這種多種參數的方法 這種寫法在多次而少量的參數傳遞特別有效果 好比說在做 Haar Transform 的時候,會使用運算多次的平均值 但是直接寫成 (x + y) / 2 會影響程式碼的可讀性 倒不如寫成 average(x, y) 還比較像一篇文章 private static int[][] horizontalHaar(int[][] planePixels) { final int height = planePixels.length; final int width = planePixels[0].length; final int segmentWidth = width / 2; final int [][] horizontalDetails = new int[height][width]; for (int i=0; i<height; i++) { for (int j=0; j<segmentWidth; j++) { horizontalDetails[i][j] = average(planePixels[i][2*j], planePixels[i][2*j+1]); } } // TODO: horizontalHaar method stub return null; } -- 題外話,除了 planePixels[0].length 可以取得二維陣列的長度之外 還有什麼好辦法可以取得長度嗎? 因為我感覺 planePixels[0] 實在很奇怪。。。不應該出現 0 這個索引值。。。 類似 planePixels.getWidth() 和 planePixels.getHeight() 這樣的東西 不知道存不存在呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.247.13
文章代碼(AID): #16n0EBP_ (java)
討論串 (同標題文章)
文章代碼(AID): #16n0EBP_ (java)