1. 程式人生 > >Java可變長引數列表

Java可變長引數列表

在Java中我們不知道自己有多少個引數要傳遞怎麼辦?可以試試可變長引數列表。

語法格式為:type... args

例如求n個數中的最大值,n事先不知道,那麼可以這樣寫:

private int max(int n1, int... args) {
      int result = n1;
      for (int n : args) {
      if (result < n) result = n;
      }
      return result;
}

還有一個特別有用的方法就是任意長度構造陣列:

/*
 * This program contains a function to trans a  list parameter to return a argument array
 */
 
 public class FunctionToArray {
	 public static int[] run(int ... args) {
		 return args;
	 } 
	 
	 public static void main(String[] args) {
		 int[] a = run(1,2,4,5,6);
		 for (int i = 0; i < a.length; i++)
			 System.out.println(a[i]);
	 }
 }


相關推薦

Java可變引數列表

在Java中我們不知道自己有多少個引數要傳遞怎麼辦?可以試試可變長引數列表。語法格式為:type... args例如求n個數中的最大值,n事先不知道,那麼可以這樣寫:private int max(in

Java可變引數

含義 Java 5中提供了可變長引數,允許在呼叫方法時傳入不定長度的引數。變長引數本質上還是基於陣列的實現: void foo(String... args); void foo(String[] args); void foo(int... arrys); void foo(float

關於Scala重寫Java可變引數方法

public interface KeyGenerator { /** * Generate a key for the given method and its parameters. * @param target the target instance

Java 可變引數

原理 Java可變長引數列表的實現是通過編譯器把把這些引數封裝成一個數組來傳遞的。 注意點 可變成引數列表不能與同類型陣列過載,因為它本身就是陣列 void print(int... args) { } //Error : Duplicat

java 可變引數 Object...object

有時候,我們傳入到方法的引數的個數是不固定的,為了解決這個問題,我們一般採用下面的方法: 1.  過載,多過載幾個方法,儘可能的滿足引數的個數。顯然這不是什麼好辦法。 2.  將引數作為一個數組傳入。雖然這樣我們只需一個方法即可,但是,為了傳遞這個陣列,我們需要先宣告一個數組,然後將引數一個一個加到陣列中。

C語言可變引數列表原理與實現

可變引數在程式設計中的實現。 stdarg.h標準庫提供的巨集支援了可變長引數列表的使用。 當然,在一些情況下也可以自己通過其實現原理來使用可變長引數程式設計。 條件一: C語言程式設計中函式的形參入棧順序都是從右至左。棧的生長方向是,低地址《—— 高地

學以致用——Java原始碼——使用變引數列表實現n個數的連乘(Variable-Length Argument List)

發現兩年前寫的程式碼與題目要求有較大出入(看來當時沒搞清楚變長引數列表是怎麼回事),改進如下:使用變長陣列作為連乘方法的引數列表(注意public static double multiply(double... factors)一句中的省略號即表示變長引數)。 之前的程式碼參考: ht

java可變引數的使用方法

Java中可變長引數的使用及注意事項 1. 可變長引數的定義 使用…表示可變長引數,例如 print(String... args){ ... } 在具有可變長引數的方法中可以把引數當成陣列使用,例如可以迴圈輸出所有的引數值。 print(

Java 可變參數列表

開始 動態生成 對待 pre 追加 可變參數列表 不能 通過 == 一、不定參數列表的使用: void f(String... strs);//此處參數類型為String, 參數個數未知, 可用","分隔追加 & 這個參數可以根據參數個數動態生成一個數組,然後傳入

可變引數---(函式的定義---形參)

收集引數---(函式的定義---形參) 1. 在引數前加*         將所有的引數,打包成元組         可以直接使用位置引數傳遞實參 2. 在引數前加**  &n

C語言可變引數函式與預設引數提升

學習本章內容的時候,首先需要知道可變引數提升相關的知識。 原文地址:https://blog.csdn.net/astrotycoon/article/details/8284501 1、概述 C標準中有一個預設引數提升(default argument promotions)規則。

va_start、va_end、va_arg 實現可變引數

/*******************************///va_start、va_end、va_arg 實現可變長引數/*******************************/ #include <stdarg.h>#include <stdio.h> #def

四.def 函式 可變引數

 def 函式  可變長引數 # 10.def 函式 fun1 函式名 # x 形式引數 在程式執行時,記憶體才會將其例項化 # fun1(2) 2為實參 x例項化,2將賦值給x #數學表

Java不定引數

我們使用過載方法的方式解決了對不同的引數型別、引數個數進行同樣的計算。但有時會遇到型別相同,但引數數量不定的情況,如果此時依然使用方法過載將會使得程式碼異常臃腫甚至無法實現。這時你可能會想到使用陣列,但Java提供了不定長引數的機制使得在語法和寫法上更為優雅。

C函式中,可變引數的傳遞?

設定結束條件,這裡的條件就是判斷引數值是否為-1。注意被調的函式在呼叫時是不知道可變引數的正確數目的,程式設計師必須自己在程式碼中指明結束條件。至於為什麼它不會知道引數的數目,在看完這幾個巨集的內部實現機制後,自然就會明白。第二篇 C語言之可變引數問題 C語言中有一種長度不確定的引數,形如:"…",它主要用在

Lua5.2新版本可變引數操作

在Version5.2 Lua的版本中,取消了預設的arg表操作函式( ... )可變長引數的操作 以前的: local function test( ... ) num = arg.n return num end 假如你這樣呼叫函式test(

非同步任務的3個引數可變引數

可變長引數: 底層就是一個數組,只能出現在方法的形參裡,不能定義 1)可變長引數的方法只有在必須的時候才會呼叫,如果有確切匹配的不可變 引數的方法,會優先選擇不可變引數的方法; 2)如果兩個方法都是可變長引數,都能匹配時,會編譯通不過;編譯器不知道呼叫哪個; 3)一個方法只能有一個可變長引數,並且這個可變

lua ... 可變引數

lua 中 … 在引數列表中意為”可變引數”,這個可變是指,通過這個可以輸入很多引數,但是不需要一一列舉出來!~ 例子: function a(...) local a1 ,a2,a3,a4

Scala 變引數列表 和 Seq

scala中可以通過如下形式宣告變長引數列表 scala> def sum(i : Int *) = i.sum sum: (i: Int*)Int scala> sum(1,2,3) res0: Int =

Java引數Varargs

Varargs (variable arguments)可變長引數是Java 1.5引入的特性。 方法的形參如print(String ... s),實參為任意數目的值。 package semantics.statement; public class VarargsD