如何将一个方法中的数组调用到另一个数组当中???

如何将一个方法中的数组调用到另一个数组当中???

package com.imooc;


import java.util.Scanner;


public class DataManage {

// 插入数据

public int[] insertData() {

int[] arr = new int[9];

Scanner sc = new Scanner(System.in);

for (int i = 0; i < arr.length; i++) {

System.out.println("请输入第" + (i + 1) + "个数据:");

arr[i] = sc.nextInt();

if (arr[i] == 0) {

System.out.println("不能输入零,请重新输入:");

i--;

continue;

}

}


System.out.println("数组元素为:");

for (int x : arr) {

System.out.print(x + "    ");

}

System.out.println();

return arr;

}


// 显示所有数据

public void showData(int[] a, int length) {

System.out.println("数据元素为:");

for (int i = 0; i < a.length; i++) {

System.out.print(a[i] + "    ");

}

System.out.println();

}


// 在指定位置处插入数据

public void insertAtArray(int[] a, int n, int k) {

int[] b = new int[a.length];

for (int i = 0; i < a.length; i++) {

if (i < (k - 1)) {

b[i] = a[i];

}

if (i == (k - 1)) {

b[i] = n;

}

if (i > (k - 1)) {

b[i] = a[i - 1];

}

System.out.print(b[i] + "    ");

}

System.out.println();

int temp[];

temp = a;

a = b;

b = temp;

}


// 查询能被3整除的数据

public void divThree(int[] a) {

int count=0;

System.out.print("能被3整除的数为:");

for (int i=0;i<a.length;i++) {

if (a[i]% 3 == 0) {

count++;

System.out.print(a[i] + "    ");

}

}

if(count==0) {

System.out.println("没有能被3整除的数");

}

System.out.println();

}


// 显示提示信息的方法

public void notice() {

System.out.println("******************************************");

System.out.println("             1--插入数据");

System.out.println("             2--显示所有数据");

System.out.println("             3--在指定位置处插入数据");

System.out.println("             4--查询能被3整除的数据");

System.out.println("             0--退出");

System.out.println("******************************************");

System.out.println("请输入对应的数字进行操作:");

}


public static void main(String[] args) {

DataManage dmd = new DataManage();

boolean flag = true;

while (flag) {

dmd.notice();

Scanner sc = new Scanner(System.in);

switch (sc.nextInt()) {

case 1:

dmd.insertData();

break;

case 2:

int arr[]=dmd.insertData();

dmd.showData(arr, arr.length);

break;

case 3:

Scanner sc1 = new Scanner(System.in);

System.out.println("请输入要插入的值:");

int n = sc1.nextInt();

Scanner sc2 = new Scanner(System.in);

System.out.println("请输入插入的位置:");

int k = sc2.nextInt();

int arr1[]=dmd.insertData();

dmd.insertAtArray(arr1, n, k);

break;

case 4:

int arr2[]=dmd.insertData();

dmd.divThree(arr2);

break;

case 0:

flag = false;

System.out.print("退出");

break;

default:

System.out.println("请输入正确的数字:");

break;

}

}

}

}


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

如下图所示你可以在主方法中声明一个int类型的数组,用来接收insertData()方法的返回值,然后在将主方法中的arr数组传递给showData方法,完成数据的展示。

http://img1.sycdn.imooc.com//climg/5c0c839500014ca403650379.jpg

运行效果如下,祝学习愉快~

http://img1.sycdn.imooc.com//climg/5c0c840a0001ccba03180187.jpg

  • 有点麋鹿 提问者 #1
    非常感谢,原理是什么呢?为什么不可以直接调用返回值,而是将返回值赋值给新的数组!!
    2018-12-09 11:27:13
提问者 有点麋鹿 2018-12-09 09:47:47

说错了,是如何讲一个方法中的数组调用到另一个方法当中去??在第一个方法中我已经得到了数组的值;但是在接下来的过程中我无法将方法一中的值用到别的方法中去。。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师