2 qq 34490701 qq_34490701 于 2016.03.31 09:42 提问

大神求解,初学java,

在java中创建一个方法,调用方法之后需要从方法中返回两个数组,怎样才能办到

29个回答

u011113654
u011113654   2016.03.31 10:07
已采纳

方式有很多种,
1.二维数组的方式
2.Vector(不定长数组)嵌套的方式
3.Vector内套数组
3.List>的方式
4.List>的方式
……
下面我用两种方式给你一个简单的demo:
1.二维数组

 // 创建定长二维数组
    public static int[][] getArrays(){
        // 创建二维数组,2 -- 表示外层数组的长度,3表示里层数组的长度
        int[][] a = new int[2][3];
        int[] b = {1, 2, 3};
        int[] c = {4, 5, 6};
        a[0] = b;
        a[1] = c;
        return a;
    }

    // 二维数组
        int[][] a = getArrays();
        for(int i = 0; i < a.length; i++){
            int[] b = a[i];
            for(int j = 0; j < b.length; j++){
                System.out.print(b[j] + " ");
            }
            System.out.println(" ");
        }

        System.out.println("\n\n");

2.Vector内套数组的方式

 // 外层使用不定长数组
    public static Vector<int[]> getVectors(){
        Vector<int[]> vector = new Vector<>();
        int[] b = {1, 2, 3};
        int[] c = {4, 5, 6};
        vector.add(b);
        vector.add(c);
        return vector;
    }

    // vector
        Vector<int[]> vector = getVectors();
        // 获取迭代器
        Iterator<int[]> iterator = vector.iterator();
        while (iterator.hasNext()) {
            int[] b = iterator.next();
            for(int c : b){
                System.out.print(c + " ");
            }
            System.out.println(" ");
        }
u010515202
u010515202   2016.03.31 10:00

方法返回值只能返回一个对象,如果你想返回两个数组(其实就是两个对象了),可以将两个数组封装到一个类中返回这个类即可,也可以通过返回list来解决

qq_25827845
qq_25827845   2016.03.31 10:23

比较蹩脚的一段代码。
package com.package1;

import java.util.Arrays;

public class T4
{
public static void main(String[] args)
{
T4 t=new T4();
int []j= t.get();
System.out.println(Arrays.toString(j));

  t.spilt(j);

}
int[] get()
{
int [] s1={1,2,3,1,10, 6,5};
int [] s2={5,2,6,2,10,24,9};
int a[]=new int[s1.length+s2.length]; //定义一个长度为s1加s2长度的数组
System.arraycopy(s1,0,a,0,s1.length); //将数组s1的元素复制到a中
System.arraycopy(s2,0,a,s1.length,s2.length); //将数组s2的元素复制到a中
return a;

}
void spilt(int [] j)
{
int index=j.length/2;
int[] a=new int[index];
int[] b=new int[index];
for (int i=0;i<index;i++)
{
a[i]=j[i];
System.out.println("a["+i+"]="+a[i]);
}

       for (int q=0;q<index;q++)
       {
          b[q]=j[q+index];
          System.out.println("b["+q+"]="+b[q]);
       }

}
}

qq_25827845
qq_25827845   2016.03.31 10:23

[1, 2, 3, 1, 10, 6, 5, 5, 2, 6, 2, 10, 24, 9]
a[0]=1
a[1]=2
a[2]=3
a[3]=1
a[4]=10
a[5]=6
a[6]=5
b[0]=5
b[1]=2
b[2]=6
b[3]=2
b[4]=10
b[5]=24
b[6]=9

qq_20389175
qq_20389175   2016.03.31 11:30

我给你提供方法4,方法5吧!
class内部调用的话为何要return 2个数组,完全可以在class下面声明全局变量 a[]=null,b[]=null;然后再方法内部给a,b附值就好了。
高端点可以:
package test;

public class GetData {
public static Data setData() {
int a[]={'1','2'};
int b[]={'3','5','7'};
Data data=new Data();
data.setA(a);
data.setB(b);
return data;
}
public static class Data{
int a[]=null;
int b[]=null;
public int[] getA() {
return a;
}
public void setA(int[] a) {
this.a = a;
}
public int[] getB() {
return b;
}
public void setB(int[] b) {
this.b = b;
}

}

}
java的原则就是面向对象,

qq_25827845
qq_25827845   2016.03.31 09:47

在一个类中创建一个方法,在别处调用此方法。将俩数组作为此方法的返回值。

Dirk_Luowei
Dirk_Luowei   2016.03.31 10:36

1.二维数组
2.List<>
3.map
应该都可以实现

Dirk_Luowei
Dirk_Luowei   2016.03.31 10:36

1.二维数组
2.List<>
3.map
应该都可以实现

Dirk_Luowei
Dirk_Luowei   2016.03.31 10:35

1.二维数组
2.List<>
3.map
应该都可以实现

sl_18500
sl_18500   2016.03.31 11:31

一个方法只能返回一个对象,要不是一个数组,要不是一个数组集合ArrayList,或者HashMap

共29条数据 1 3 尾页
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!