`

JAVA范例 五)数组---一维数组

阅读更多

一维数组

实例55  一维数组的创建与使用

import java.util.Random;

public class OneArray_01 {
	public static void main(String[] args) {
		Random rd = new Random();				// 创建Random对象
		int array[] = new int[10];					// 创建一个长度为10的int型数组array
		System.out.println("  \narray数组中的每个元素值如下:\n");
		for (int i = 0; i < array.length; i++) {			// 给数组中的每个元素赋值
			array[i] = rd.nextInt(10);				// 生成0~10之间的随机数
			System.out.print("  " + array[i] + " ");		// 将数组中的元素输出
			if ((i + 1) % 5 == 0)					// 每5个元素一行
				System.out.println();
		}
	}
}

 

实例56  按相反的顺序输出

public class OneArray_02 {
	public static void main(String[] args) {
		int[] row = { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 };
		System.out.println("\n入场顺序如下:");
		for (int i = 0; i < row.length; i++) {
			System.out.print("   第七排" + row[i] + "号");
			if ((i + 1) % 5 == 0)
				System.out.println();
		}
		System.out.println("\n出场顺序如下:");
		for (int i = row.length - 1; i >= 0; i--) {
			System.out.print("   第七排" + row[i] + "号");
			if (i % 5 == 0)
				System.out.println();
		}
	}
}

 

实例57  奇偶分组

import java.util.Random;

public class OneArray_03 {
	public static void main(String[] args) {
		Random rd = new Random();		// 创建Random对象
		int total[] = new int[30];			// 创建一个长度为30的int型数组total(总数组)
		int odd[] = new int[30];			// 创建一个长度为30的int型数组odd(奇数数组)
		int even[] = new int[30];			// 创建一个长度为30的int型数组even(偶数数组)
		int j = 0, k = 0;
		System.out.println("总数组total的元素如下:");
		for (int i = 0; i < total.length; i++) {
			total[i] = rd.nextInt(100);		// 为total数组赋初值
			if (total[i] % 2 == 0) {			// 判断当前数组中的元素是否为偶数
				even[k] = total[i];
				k++;
			} else {
				odd[j] = total[i];
				j++;
			}
			System.out.print(" " + total[i]);
			if ((i + 1) % 5 == 0)			// 每5个元素一行
				System.out.println();
		}
		System.out.println("\n奇偶相交替输出:");
		int max = j > k ? j : k;				// 求j和k两者间的最大值
		int min = j > k ? k : j;				// 求j和k两者间的最小值
		/* 下面是将奇数和偶数交替输出,并只将多出的奇数或偶数输出 */
		for (int x = 0; x < max; x++) {
			if (x >= min && j == min) {			// 当x大于求出的最小值时,如果这个最小值等于奇数的个数,则输出多出的偶数
				System.out.print("  " + even[x]);
			} else if (x >= min && k == min) {	// 当x大于求出的最小值时,如果这个最小值等于偶数的个数,则输出多出的奇数
				System.out.print("  " + odd[x]);
			} else if (x < min) {				// 交替着输出奇数和偶数
				System.out.print("  " + odd[x] + "," + even[x]);
			}
			if ((x + 1) % 5 == 0)				// 每5个元素一行
				System.out.println();
		}
	}
}

 

实例58  找宝

import java.util.Random;

public class OneArray_04 {
	public static void main(String[] args) {
		Random rd = new Random();			// 创建Random对象
		int len = rd.nextInt(20);				// 百宝箱中珠宝的个数
		int[] box = new int[len];				// 定义一个百宝箱(数组)
		System.out.println("百宝箱中共有" + len + "个珠宝,其所有的编号如下:");
		for (int i = 0; i < box.length; i++) {
			box[i] = rd.nextInt(20);			// 给数组元素赋值
			System.out.print(box[i] + "  ");
			if ((i + 1) % 5 == 0)
				System.out.println();
		}
		System.out.println();
		int index = searchBotey(box, 8);		// 调用searchBotey方法
		if (index == -1) {
			System.out.print("此类宝石没有在该百宝箱中");
		} else {
			System.out.print("此类宝石百宝箱中的第" + (index + 1) + "格子中");
		}
	}
	public static int searchBotey(int[] box, int index) {// 其中box指的是数组参数,index指的是要查找的元素值
		int num = -1;
		for (int i = 0; i < box.length; i++) {
			if (index == box[i]) {
				num = i;
			}
		}
		return num;
	}
}

 

实例59  寻找最小数

public class OneArray_05 {
	public static void main(String[] args) {
		int array[] = { 12, 89, 51, 24, 5, 121, 63, 10, 23, 15 };		//定义一个带有初始值的整型数组array
		int min = 0;
		int flag = 0;
		System.out.println("交换前数组元素如下:");
		for (int i = 0; i < array.length; i++) {
			System.out.print(array[i] + " ");
			if ((i + 1) % 5 == 0)
				System.out.println();
		}
		for (int i = 0; i < array.length; i++) {		// 查找最小数
			if (i == 0) {						// 如果第一次循环,将数组中的第一个元素赋给变量min
				min = array[0];
				flag = 0;
			} else {
	// 将变量min与其它的数组元素相比较,如果min的值大于其他数组元素,则将数组元素的值赋给min
				if (min > array[i]) {			
					min = array[i];
					flag = i;
				}
			}
		}
		// 最小值与最后的元素进行交换
		int n = array[flag];
		array[flag] = array[array.length - 1];
		array[array.length - 1] = n;
		System.out.println("\n交换后数组元素如下:");
		for (int i = 0; i < array.length; i++) {	// 输出交换后数组
			System.out.print(array[i] + " ");
			if ((i + 1) % 5 == 0)
				System.out.println();
		}
		System.out.println("\n数组中的最小值为:" + min + " 它的下标为 " + flag);
	}
}

 

实例60  我的位置在哪里

public class OneArray_06 {
	public static void main(String[] args) {
		int[] person = getLocation();
		System.out.println("最后的结果如下:(其中,0表示已经离开圈子了,1表示还在圈中)");
		for (int i = 0; i < person.length; i++) {
			System.out.print(person[i] + " ");
			if ((i + 1) % 5 == 0)
				System.out.println();
	// 寻找哪个人的状态为1,则此人就是一直没有出圈的人,获取此元素的下标,就是此人原来位置的编号
			if (person[i] == 1) {
				System.out.println("这个人的原来位置编号为:" + i);
			}
		}
	}
	public static int[] getLocation() {
		int person[] = new int[17];				// 创建一个由17个人组成的圈子
		for (int i = 0; i < person.length; i++) {		// 设置每个人都在圈内的状态为1
			person[i] = 1;
		}
		int i = 0;							// 表示第几个人
		int k = 0;							// 表示报数
		int count = 0;						// 表示出圈的人数
		while (true) {
			i = i % 17;						// 为了确保i的值永远在0~16之间
			if (person[i] == 1) {				// 如果此人还在圈中则报数
				k++;						// 报数加1
				if (k % 3 == 0) {				// 如果报的数是3的倍数
					person[i] = 0;			// 此人的状态改为0,表示此人已经离圈
					count++;				// 离圈的人自动加1
				}
			}
			if (count == 16) {				// 如果已经有16个人离圈,则结束报数
				break;
			}
			i++;
		}
		return person;
	}
}

 

实例61  复制数组

public class OneArray_07 {
	public static void main(String[] args) {
		copy();
	}
	public static void copy() { 								// 数组复制
		int copy1[] = new int[] { 23, 12, 67, 89, 56, 47, 13 }; 		// 声明数组并初始化
		// 声明数组长度与copy1数组的长度相同的数组,也就是备份数组
		int copy2[] = new int[copy1.length]; 
		System.out.println("数组copy1中的元素如下:");
		for (int i = 0; i < copy1.length; i++) {					// 循环显示copy1数组元素
			System.out.print(copy1[i] + "  ");
			if ((i + 1) % 4 == 0)
				System.out.println();
		}
		System.arraycopy(copy1, 0, copy2, 0, copy1.length); 	// 将数组copy1复制给数组copy2
		System.out.println("\n复制的新数组copy2中的元素如下:");
		for (int i = 0; i < copy2.length; i++) {					// 循环显示copy2数组元素
			System.out.print(copy2[i] + "  ");
			if ((i + 1) % 4 == 0)
				System.out.println();
		}
	}
}

 

实例62  插入新元素

import java.util.Scanner;

public class OneArray_08 {
	public static void main(String[] args) {
		insertArray ();
	}
	public static void insertArray () {
		int i, j;
		int n = 5;
		int insertNum[] = new int[n + 1];				// 定义一个数组
		for (i = 0; i < insertNum.length - 1; i++) {
			insertNum[i] = i + (1 + 2 * i);			// 按从小到大的顺序给数组元素赋值
		}
		int length = insertNum.length; 				// 获得数组长度
		System.out.println("插入数字之前的数组为:");
		for (i = 0; i < length; i++)					// 循环显示数组元素
			if (insertNum[i] == 0)
				System.out.print("");
			else
				System.out.print(insertNum[i] + "  ");
		System.out.println();
		System.out.println("请输入一个数字:");
		Scanner scan = new Scanner(System.in);		// 键盘输入一个数
		int in = scan.nextInt();
		for (i = 0; i < length - 1; i++) { 				// 循环查找要插入新数的位置
			if (insertNum[i] > in)
				break;
		}
		for (j = length - 1; j > i; j--) {				// 移动元素,为新数空出位置
			insertNum[j] = insertNum[j - 1];
		}
		insertNum[i] = in; 						// 将要插入的数保存到该位置
		System.out.println("\n将" + in + "插入insertNum数组后,该数组的元素为:");
		for (i = 0; i < length; i++)					// 循环显示数组元素
			System.out.print(insertNum[i] + "  ");
		System.out.println();
	}
}

 

实例63  数组的合并

public class OneArray_09 {
	public static void main(String[] args) {
		int a[] = {1,3,5,7,9};
		int b[] = {0,2,4,6,8};
		int c[] = combineArray (a,b);
		System.out.println("合并之后的新数组c的元素如下:");
		for (int k = 0; k < a.length + b.length; k++)		//循环输出合并后的数组的元素
			System.out.print(c[k]+"  ");
		System.out.println();
	}
	public static int[] combineArray (int[] a, int[] b) {
		int al = a.length;					//获得参数a数组的长度
		int bl = b.length;					//获得参数b数组的长度
		int length = al + bl;					//获得合并数组的长度
		int i, j;
		System.out.println("需要被合并的a数组的元素如下:");
		for(i=0;i<al;i++)						//循环显示a数组元素
			System.out.print(a[i]+"  ");
		System.out.println("\n需要被合并的b数组的元素如下:");
		for(i=0;i<bl;i++)						//循环显示b数组元素
			System.out.print(b[i]+"  ");
		System.out.println();
		int[] c = new int[length];				//创建存储合并后数据元素的c数组
		for (i = 0, j = 0; i < al && j < bl;){			//循环查看元素进行比较
			if (a[i] < b[j]) {					//判断两个数组元素值的大小
				c[i + j] = a[i];
				i++;
			} else {
				c[i + j] = b[j];
				j++;
			}
		}
		if (i == al)				//将b数组从下标为j开始将值赋给c数组,放在c数组的al+j,bl-j之间
			System.arraycopy(b, j, c, al + j, bl - j);
		if (j == bl)				//将a数组从下标为i开始将值赋给c数组,放在c数组的bl+i,al-i之间
			System.arraycopy(a, i, c, bl + i, al - i);
		return c;
	}
}

 

实例64  去除重复元素

import java.util.Arrays;
import java.util.Random;

public class OneArray_10 {
	public static int[] trim(int array[]) {
		int len = array.length; 			// 获得传入数组的长度
		int[] brray = new int[len]; 			// 声明一个数组,长度为传入数组的长度
		int newlen = len;
		for (int i = 0; i < len; i++) { 		// 初始化brray
			brray[i] = 0;
		}
		for (int j = 1; j < len; j++) { 		// 记录重复的值
			if (array[j] == array[j - 1]) {
				brray[j] = 1;
				newlen--;
			}
		}
		int[] newArray = new int[newlen]; 	// 声明数组,长度为传入数组长度-重复数字的个数
		int newId = 0;
		for (int i = 0; i < len; i++) { 		// 循环将数组赋值
			if (brray[i] == 0) { 			// 数组元素等于1是存放重复数字
				newArray[newId++] = array[i];
			}
		}
		return newArray;
	}
	public static void main(String[] args) {
		Random rd = new Random();
		int[] array = new int[20]; 			// 声明数组
		System.out.println("没有去除重复数据的数组元素共有" + array.length + "个,它们的值分别为:");
		for (int i = 0; i < array.length; i++) {	// 利用随机数随意产生20个0~20之间的随机数
			array[i] = rd.nextInt(20);		// 给array数组赋值
		}
		Arrays.sort(array);				// 对array数组进行升序排序
		for (int i = 0; i < array.length; i++) {	// 将array数组中的数据输出
			System.out.print(" " + array[i]);
			if ((i + 1) % 5 == 0)
				System.out.println();
		}
		int c[] = trim(array); 				// 调用trim方法去掉重复数字
		System.out.println("\n去掉数组中重复数字,还剩有" + c.length + "个数字,它们的值分别为:");
		for (int i = 0; i < c.length; i++) { 		// 将去掉重复数字的数组元素输出
			System.out.print(c[i] + " ");
		}
	}
}

 

实例65  数组求和计算

import java.util.Random;

public class OneArray_11 {
	public static void main(String[] args) {
		Random rd = new Random();
		int[] array = new int[20]; 			// 声明数组
		System.out.println("随机生成的数组中的元素值如下:");
		for (int i = 0; i < array.length; i++) {	// 利用随机数随意产生20个0~20之间的随机数
			array[i] = rd.nextInt(20);		// 给array数组赋值
			System.out.print(" " + array[i]);	// 输出array数组中的元素值
			if ((i + 1) % 5 == 0)			// 每5个元素一行
				System.out.println();
		}
		int sum = sumArray(array);		// 调用sumArray方法,获取array数组中所有元素的和
		System.out.println("\n数组array中的所有元素的和为:" + sum);
	}
	public static int sumArray(int[] a) {		// 计算数组中所有元素的和
		int sum = 0;
		for (int i = 0; i < a.length; i++) {
			sum = sum + a[i];			// 每个元素值累加
		}
		return sum;
	}
}

 

实例66  求最大值、最小值和平均值

import java.util.Random;

public class OneArray_12 {
	public static void main(String[] args) {
		Random rd = new Random();
		double a[] = new double[10];				// 创建一个长度为10的double型数组
		System.out.println("数组中所有的元素如下:");
		for (int i = 0; i < a.length; i++) {				// 为数组中的每个元素赋值
			a[i] = Math.rint(rd.nextDouble() * 100);	// 获取与double值最相近的并且是整数的double值
			System.out.print(" " + a[i]);
			if ((i + 1) % 5 == 0)
				System.out.println();
		}
		System.out.println();
		double b[] = show(a);								// 调用show方法
		System.out.println("数组a中的最大值max为:" + b[0]);		// 显示最大值
		System.out.println("数组a中的最小值min为:" + b[1]);		// 显示最小值
		System.out.println("数组a中的平均值ave为:" + b[2]);		// 显示平均值
	}
	public static double[] show(double[] dou) {		// 求数组元素中的最大值、最小值和所有元素的平均值
		double[] result = new double[3];			// 创建一个长度为3的double型数组
		double max = dou[0], min = dou[0], sum = dou[0];
		for (int i = 1; i < dou.length; i++) {
			max = max > dou[i] ? max : dou[i];	// 求最大值
			min = min < dou[i] ? min : dou[i]	;	// 求最小值
			sum += dou[i];					// 求所有元素的累加和
		}
		result[0] = max;
		result[1] = min;
		result[2] = sum / dou.length;			// 求平均值
		return result;
	}
}

 

 

分享到:
评论

相关推荐

    JAVA中的二维数组

    for(int row[] :arr) //此时不难看出,二维数组可以看作是每个元素都是一个一维数组的一维数组 { for(int item: row) { System.out.print(item+ " "); } System.out.println(); } 补充: //...

    java范例开发大全(pdf&源码)

    实例55 一维数组的创建与使用 78 实例56 按相反的顺序输出 79 实例57 奇偶分组 80 实例58 找宝 81 实例59 寻找最小数 82 实例60 我的位置在哪里 83 实例61 复制数组 85 实例62 插入新元素 86 实例63 数组的合并 87 ...

    JAVA 范例大全 光盘 资源

    实例13 一维数组复制、插入和合并 32 实例14 数组排序 35 实例15 数组搜索 37 实例16 去掉数组重复数字 39 实例17 求质数(素数) 41 实例18 矩阵的加减和转置 43 实例19 数组实现顺序栈与队列 46 实例20 ...

    java范例开发大全源代码

     实例55 一维数组的创建与使用 78  实例56 按相反的顺序输出 79  实例57 奇偶分组 80  实例58 找宝 81  实例59 寻找最小数 82  实例60 我的位置在哪里 83  实例61 复制数组 85  实例62 插入...

    java范例开发大全

    实例55 一维数组的创建与使用 78 实例56 按相反的顺序输出 79 实例57 奇偶分组 80 实例58 找宝 81 实例59 寻找最小数 82 实例60 我的位置在哪里 83 实例61 复制数组 85 实例62 插入新元素 86 实例63 数组的合并 87 ...

    Java范例开发大全 (源程序)

     实例55 一维数组的创建与使用 78  实例56 按相反的顺序输出 79  实例57 奇偶分组 80  实例58 找宝 81  实例59 寻找最小数 82  实例60 我的位置在哪里 83  实例61 复制数组 85  实例62 插入新元素 86...

    Java范例开发大全(全书源程序)

    Java范例开发大全(全书源程序),目录如下: 第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境...

    Java开发技术大全(500个源代码).

    traversing.java 遍历一维数组 useStrBuf.java 使用StringBuffer示例 useString.java 使用String示例 YanghuiTri.java 构造和显示杨辉三角 第6章 示例描述:本章学习Java的异常处理。 demoException_1.java ...

    JAVA上百实例源码以及开源项目源代码

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    JAVA上百实例源码以及开源项目

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...

    Google Android SDK开发范例大全的目录

    4.13 具自动提示功能的菜单——AutoCompleteTextView与数组 4.14 数字及模拟小时钟设计——AnalogClock与DigitalClock的原理 4.15 动态输入日期与时间——DatePicker与TimePicker应用 4.16 猜猜红心A在那儿——...

    LeetCode-Practice:标题

    一维数组的运行总和(简单-数组练习) 给定一个数组nums。 我们将数组的运行总和定义为runningSum [i] = sum(nums [0]…nums [i])。 返回数字的运行总和。 范例1: Input: nums = [1,2,3,4] Output: [1,3,6,10...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    Google Android SDK开发范例大全(完整版) 包含部分书中源码 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 ...

    Google Android SDK 开发范例大全01

    Google Android SDK开发范例大全 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1 安装AndroidSDK与...

    Google Android SDK 开发范例大全02

    Google Android SDK开发范例大全 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1 安装AndroidSDK与...

Global site tag (gtag.js) - Google Analytics