Java中数组的定义和使用教程(二)

数组与方法调用

数组是一个引用数据类型,那么所有的引用数据类型都可以为其设置多个栈内存指向。所以在进行数组操作的时候,也可以将其通过方法进行处理。

范例: 方法接受数组

public class ArrayDemo {
	public static void main(String args[]) {
			int data[] = new int[] {1, 2, 3};
			printArray(data);

	}
	//定义一个专门进行数组输出的方法
	public static void printArray(int temp[]) {
		for (int i = 0; i < temp.length; i++) {
			System.out.print(temp[i] + "、");
		}
	}
}

在方法的参数上由于需要接受一个整型数组,所以就实现了一个最为基础的引用传递操作。

范例: 方法返回数组

public class ArrayDemo {
	public static void main(String args[]) {
			int data[] = init(); //接受数组
			printArray(data);
	}

	//此时的方法希望可以返回一个数组类型,所以返回值类型定义为整形数组
	public static int[] init() {
		return new int[] {1, 2, 3, 4, 6};
	}

	//定义一个专门进行数组输出的方法
	public static void printArray(int temp[]) {
		for (int i = 0; i < temp.length; i++) {
			System.out.print(temp[i] + "、");
		}
	}
}

那么现在的数组上发生了引用传递,那么也就意味着方法接受数组之后也可以对数组进行内容修改。

范例: 定义一个方法,该方法可以实现数组的内容的乘2

public class ArrayDemo {
	public static void main(String args[]) {
			int data[] = init();
			inc(data);
			printArray(data);
	}

	public static void inc(int arr[]) {
		for(int x = 0; x < arr.length; x++)
			arr[x] *= 2;
	}

	//此时的方法希望可以返回一个数组类型,所以返回值类型定义为整形数组
	public static int[] init() {
		return new int[] {1, 2, 3, 4, 6};
	}

	//定义一个专门进行数组输出的方法
	public static void printArray(int temp[]) {
		for (int i = 0; i < temp.length; i++) {
			System.out.print(temp[i] + "、");
		}
	}
}

Java对数组的支持

在Java本身给出的类库之中也提供有对于数组的操作的相关支持方法。

1、数组排序:java.util.Arrays.sort(数组名称);

范例: 实现数组排序操作

public class ArrayDemo {
	public static void main(String args[]) {
		int data[] = new int[] {5, 13, 1, 55, 77};
		char arr[] = new char[] {'D', 'C', 'F'};
		java.util.Arrays.sort(data);
		java.util.Arrays.sort(arr);
		printArray(data);
		printArray(arr);
	}

	//定义一个专门进行数组输出的方法
	public static void printArray(int temp[]) {
		for (int i = 0; i < temp.length; i++) {
			System.out.print(temp[i] + "、");
		}
		System.out.println();
	}
	public static void printArray(char temp[]) {
		for (int i = 0; i < temp.length; i++) {
			System.out.print(temp[i] + "、");
		}
		System.out.println();
	}
}

只要是基本数据类型的数组,Arrays.sort()都可以轻松地实现排序处理。

2、数组拷贝:指的是将一个数组的部分内容替换掉另外一个数组的内容

方法(加工):System.arraycopy(原数组名称, 原数组开始点, 目标数组名称, 目标数组开始点, 拷贝长度)
范例: 实现数组拷贝

原数组A:1、2、3、4、5、6、7、8、9;

原数组B:11、22、33、44、55、66、77、88、99;

替换后的数组A:1、55、66、77、5、6、7、8、9;

 public class ArrayDemo {
	public static void main(String args[]) {
		int dataA[] = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9};
		int dataB[] = new int[] {11, 22, 33, 44, 55, 66, 77, 88, 99};
		System.arraycopy(dataB, 4, dataA, 1, 3);
		printArray(dataA);
	}
	//定义一个专门进行数组输出的方法
	public static void printArray(int temp[]) {
		for (int i = 0; i < temp.length; i++) {
			System.out.print(temp[i] + "、");
		}
		System.out.println();
	}
}

这些基本的数组操作只能够作为逻辑玩玩,开发用不上。

数组数据统计

现在假设给你一个数组,要求可以统计该数组的最大值、最小值、平均值、总和。这种操作肯定是要通过循环的操作形式完成。

范例: 基本实现

public class ArrayDemo {
	public static void main(String args[]) {
		int data[] = new int[] {1, 2, 3, 4, 66, 5, 6, 7, 8, 9};
		int max = data[0];
		int min = data[0];
		int sum = 0;
		for(int x = 0; x < data.length; x++) {
			sum += data[x];
			if(data[x] > max)
				max = data[x];
			if(data[x] < min)
				min = data[x];
		}
		System.out.println("最大值:" + max);
		System.out.println("最小值:" + min);
		System.out.println("数据总和:" + sum);
		System.out.println("平均值:" + (double)sum/data.length);
	}
}

此时确实实现了所需要的功能,但是随之会发现主方法中的代码有些多。主方法实际上就相当于一个客户端调用,那么既然是客户端调用,里面的代码应该也越简单越好。

范例: 改进代码

public class ArrayDemo {
	public static void main(String args[]) {
		int data[] = new int[] {1, 2, 3, 4, 66, 5, 6, 7, 8, 9};
		double result[] = stat(data);
		System.out.println("最大值:" + result[0]);
		System.out.println("最小值:" + result[1]);
		System.out.println("数据总和:" + result[2]);
		System.out.println("平均值:" + result[3]);
	}

	//此时需要返回的数据一共有四个,那么一个方法只能够返回一种数据类型,所以应该使用数组返回
	//数组[0]为最大值、数组[1]为最小值、数组[2]为数据总和、数组[3]为平均值
	public static double[] stat(int data[]) {
		double reData[] = new double[4];
		reData[0] = data[0];
		reData[1] = data[0];
		reData[2] = data[0];
		for(int x = 1; x < data.length; x++) {
			reData[2] += data[x];
		if(data[x] > reData[0])
			reData[0] = data[x];
		if(data[x] < reData[1])
			reData[1] = data[x];
		}
		reData[3] = reData[2] / data.length;
		return reData;
	}
}

在整个进行程序开发的时候,主方法不要涉及到过于复杂的逻辑程序,只需要关注结果。

总结

到此这篇关于Java中数组的定义和使用的文章就介绍到这了,更多相关Java数组的定义和使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java二维数组简单定义与使用方法示例

    本文实例讲述了Java二维数组简单定义与使用方法.分享给大家供大家参考,具体如下: Java的二维数组是先创建一个一维数组,然后该数组的元素再引用另外一个一维数组.在使用二维数组的时候,通过两个中括号[]来访问每一层维度的引用,直到访问到最终的数据. public class MultiDimArray{ /** * @param args */ public static void main(String[] args) { int[][] arr = new int[3][]; arr[0]

  • java中数组的定义及使用方法(推荐)

    数组:是一组相关变量的集合 数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组.二维数组.多维数组 数据的有点 不使用数组定义100个整形变量:int i1;int i2;int i3 使用数组定义 int i[100]; 数组定义:int i[100];只是一个伪代码,只是表示含义的 一维数组 一维数组可以存放上千万个数据,并且这些数据的类型是完全相同的, 使用java数组,必须经过两个步骤,声明数组和分配内存给该数组, 声明形式一 声明一维数组:数据类型

  • java定义二维数组的几种写法(小结)

    如下所示: //定义二维数组写法1 class numthree { public static void main(String[] args) { float[][] numthree; //定义一个float类型的2维数组 numthree=new float[5][5]; //为它分配5行5列的空间大小 numthree[0][0]=1.1f; //通过下标索引去访问 1行1列=1.1 numthree[1][0]=1.2f; // 2行1列=1.2 numthree[2][0]=1.3

  • java定义数组的三种类型总结

    三种定义数组的格式如下: int[] arr1=new int[10]; int[] arr2={1,2,3,6}; int[] arr3=new int[]{1,2,3,4,5,6,7,22}; 注意:数组的length是一个属性,而字符串的length()是一个方法了!!!虽然都是求的他们各自的长度 package 第四天; public class 数组 { public void showArray(int[] arr) { for(int i=0;i<arr.length;i++) S

  • Java数组的定义、初始化、及二维数组用法分析

    本文实例讲述了Java数组的定义.初始化.及二维数组用法.分享给大家供大家参考,具体如下: 数组的定义 1.数组是有序数据的集合,数组中的每个元素具有相同的数组名和下标来做唯一标识. 数组的分类 一维数组 二维数组 多维数组 数组的优点: 例如:定义100个整型变量.用数组很方便. 数组声明: 1.int [] array; 2.int array []; 数组的声明以及内存的分配 1.为数组分配内存空间,如果不分配内存,将不能访问它的任何元素.我们使用new关键字来为数组分配内存空间. int

  • java 创建自定义数组

    1.java创建自定义类数组方法: Student []stu = new Student[3]; for(int i = 0; i < 3; i ++) { stu[i] = new Student(); } 2.否则会提示空指针异常 package project; import java.io.*; import java.util.Scanner; class Student { private int id; private String name; private int score

  • Java中数组的定义和使用教程(一)

    数组的基本概念 如果说现在要求你定义100个整型变量,那么如果按照之前的做法,可能现在定义的的结构如下: int i1, i2, i3, ... i100; 但是这个时候如果按照此类方式定义就会非常麻烦,因为这些变量彼此之间没有任何的关联,也就是说如果现在突然再有一个要求,要求你输出这100个变量的内容,意味着你要编写System.out.println()语句100次. 其实所谓的数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作.数组本身属于引用数据类型,那么既然是引

  • Java自定义数组列表的实现操作

    主要目的: 解决ArrayList 类不能改变大小的问题,主要实现数组列表动态调整大小. 1.数组类型如何选择?由于我们不清楚数组中具体存入什么类型的数据, 我们可以声明一个对象Object [ ] ,这样,数组列表就可以存储任何类型的数据了. 2.泛型<> :如果定义的一个类或接口有一个或多个类型变量,则可以使用泛型. ArrayList<String>本身就是泛型,各种类型的变量都可以组装成对应的List,而不必针对每个类型分别实现一个构建ArrayList的类. 泛型字母所代

  • Java对象数组定义与用法详解

    本文实例讲述了Java对象数组定义与用法.分享给大家供大家参考,具体如下: 所谓的对象数组,就是指包含了一组相关的对象,但是在对象数组的使用中一定要清楚一点:数组一定要先开辟空间,但是因为其是引用数据类型,所以数组里面的每一个对象都是null值,则在使用的时候数组中的每一个对象必须分别进行实例化操作. 对象数组的声明 先定义,再开辟空间 类名称 对象数组名[] = null; 对象数组名 = new 类名称[长度]; 定义并开辟数组 类名称 对象数组名[] = new 类名称[长度]; 在声明对

  • java 重定义数组的实现方法(与VB的ReDim相像)

    复制代码 代码如下: //param objArr   the expanded object of Array.          //param  newLength  the length of the new Array     public static Object getNewArr(Object objArr, int newLength) { if (!objArr.getClass().isArray()) {//判断类型 return null; } // get the

随机推荐