问题描述
- 大神求解,初学java,
-
在java中创建一个方法,调用方法之后需要从方法中返回两个数组,怎样才能办到
解决方案
方式有很多种,
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("nn");
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(" ");
}
解决方案二:
方法返回值只能返回一个对象,如果你想返回两个数组(其实就是两个对象了),可以将两个数组封装到一个类中返回这个类即可,也可以通过返回list来解决
解决方案三:
比较蹩脚的一段代码。
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]);
}
}
}
解决方案四:
[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
解决方案五:
我给你提供方法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的原则就是面向对象,
解决方案六:
在一个类中创建一个方法,在别处调用此方法。将俩数组作为此方法的返回值。
解决方案七:
1.二维数组
2.List<>
3.map
应该都可以实现
解决方案八:
1.二维数组
2.List<>
3.map
应该都可以实现
解决方案九:
1.二维数组
2.List<>
3.map
应该都可以实现
解决方案十:
一个方法只能返回一个对象,要不是一个数组,要不是一个数组集合ArrayList,或者HashMap