【问题标题】:pass an array object in a parameter在参数中传递一个数组对象
【发布时间】:2013-04-08 06:13:03
【问题描述】:

我是java新手,我想知道,我们如何将数组对象作为参数传递给方法。假设我有:

public void sortArray(A[7])

我应该在括号之间放什么?应该是A[length of array] 还是什么?

【问题讨论】:

  • sniker 因为所有写入必须首先在 java 内存模型中读取,所以这是impossible,除非出现好的旧夹头诺里斯

标签: java arrays methods


【解决方案1】:

如果您不想将数组命名为:也可以创建一个匿名数组:

public void array(int arr[])
{
    // code handling arr
}

现在对于上面的方法,你可以传递一个数组对象而不用创建它:

public static void main(String[] args)
{
   array(int[] {1,2,3,4,5});
}

这也称为未命名数组或匿名数组。无需为按值调用创建数组。如果您不再希望该数组包含在 main() 方法中,则可以使用未命名的数组。这有助于节省内存。谢谢你

【讨论】:

    【解决方案2】:

    这样你可以传递一个数组

    int[] a = new int[100];
    myFunction(a);
    
     public void myFunction(int[] a){
           for(int i =0; i< a.lenght();i++){
    
                    System.out.println(i);
    
                  }
    
           }
    

    【讨论】:

      【解决方案3】:

      当您将数组作为参数传递时,它的长度以及其中存储的内容都会被传递,因此您无需专门指定长度。具体实现见下例:

      将 int 数组作为参数的方法的简单示例:

      public void takeArray(int[] myArray) {
          for (int i = 0; i < myArray.length; i++) { // shows that the length can be extracted from the passed in array.
              // do stuff
          }
      }
      

      你会这样称呼这个方法:

      假设你有一个这样的数组:

      int[] someArray = {1, 2, 3, 4, 5};
      

      然后你调用上面的方法:

      takeArray(someArray);
      

      【讨论】:

        【解决方案4】:

        您只需将数组的名称传递给方法。

        int[] a = new int[10];
        
        ...
        
        bar(a);
        

        bar 的定义如下:

        void bar(int[] a)
        {
            ...
        }
        

        【讨论】:

          【解决方案5】:

          只需将数组传递给方法。您无需提及任何尺寸。

          void sortArray(int[] array) {
            // Code
          }
          

          // 调用方法并传递这个数组。

          int[] array = new int[10];
          sortArray(array);
          

          【讨论】:

            【解决方案6】:

            例如你有你说的程序:

            public void sortArray(typeArray[] A){
             //code
             //code
            }
            

            调用数组:

            typeArray[] A = new typeArray[N]; //N is number of array you want to create
            searchArray(A); //this how I call array
            

            【讨论】:

              猜你喜欢
              • 2013-07-08
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-04-27
              • 1970-01-01
              • 2021-04-09
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多