`

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范例开发大全》.pdf

    5. **数组操作**:一维数组和二维数组的创建、遍历、查找最小值、复制、合并、去重等操作都有所涵盖。还有矩阵的转置、加减运算以及奇偶分组等实例。 6. **字符串处理**:字符串类的使用,如charAt()、比较、解码、...

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

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

    Java灵感编程范例源代码21-40

    8. 数组:Java支持一维、二维及多维数组,示例可能会包含创建、遍历和操作数组的方法。 9. 集合框架:Java集合框架包括List、Set、Queue等接口,以及ArrayList、LinkedList、HashSet、HashMap等实现。示例可能涉及...

    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范例开发大全》.docx

    5. **数组**:一维和二维数组的创建、访问、遍历、排序、合并、去重等操作。 6. **字符串操作**:使用String类的方法进行字符串比较、查找、替换、分割、截取等。 7. **集合框架**:虽然未直接提及,但作为Java的...

    java范例开发大全

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

    Java范例大全

    5. **数组**:理解一维和多维数组的创建、遍历以及操作方法。 6. **字符串操作**:Java中的String类提供了丰富的操作字符串的方法,如concat、substring、indexOf、replace等。 7. **集合框架**:包括ArrayList、...

    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 2范例入门与提高

    3. **数组**:学习如何声明、初始化和操作数组,以及一维和多维数组的使用。 4. **字符串处理**:掌握String类的常用方法,如concat()、substring()、indexOf()等,以及StringBuffer和StringBuilder类的使用。 5. ...

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

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

    李兴华j2se不分的所有笔记

    - 数组的定义及使用笔记:深入解析了数组的创建、初始化和使用,包括一维数组、多维数组以及数组的操作。 - 方法的声明及使用笔记:介绍了方法的定义、参数传递、返回值以及重载的概念,帮助理解方法在程序中的...

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

    Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,...

    177个c程式范例的光碟 (windows)

    3. **数组**:学习如何声明、初始化和操作数组,包括一维、二维数组,以及数组与函数的交互。 4. **指针**:C语言的精髓之一,范例会演示指针的声明、赋值、解引用以及如何通过指针进行内存操作。 5. **结构体**:...

    200个c程式范例的光碟 (Templates)

    2. **数组与指针**:一维、二维数组,指针的使用,指针与数组的关系,动态内存分配。 3. **结构体与联合**:自定义数据类型,结构体内存对齐,指针指向结构体。 4. **函数指针**:使用函数指针作为参数,回调函数...

    俄罗斯方块java源代码

    5. 数据结构:如二维数组用于表示游戏板,存储当前方块的位置和状态。 6. 循环和条件判断:实现游戏逻辑,如方块的下落、碰撞检测、消除行等。 7. 状态管理:跟踪游戏状态,如暂停、游戏结束、新游戏等。 8. 错误...

    616个c程式范例的光碟

    3. **数组**:一维数组、多维数组、动态数组、数组与函数的交互。 4. **指针**:指针的声明、分配、解引用、指针算术、指针与数组的关系、指针作为函数参数。 5. **结构体与联合**:结构体的定义、初始化、结构体...

    android-image-filter-ndk,使用android ndk在c中处理位图的android示例项目.zip

    2. 位图数据转换:在C/C++中,需要将Bitmap的像素数据转换成可以直接操作的数组,如二维数组或一维数组。然后,通过对每个像素值的运算,实现图像过滤。 四、图像过滤算法 1. 基本滤镜:例如灰度滤镜,只需将每个...

Global site tag (gtag.js) - Google Analytics