精华内容
下载资源
问答
  • 另外一种方法是假定第一个数为最大或最小值,与其余数依次比较,遍历数组后即可得到最大或最小值。 第一种方法:使用java.util.Arrays工具对数组排序。 int[] arr = new int[] {2,5,1,9,8,6,4}; Arrays.sort(arr)...

    使用java获取数组最大最小值,可以采用两种方法。一种是对数组排序,排序后的数组第一位和最后一位即为最小值和最大值。另外一种方法是假定第一个数为最大或最小值,与其余数依次比较,遍历数组后即可得到最大或最小值。

    第一种方法:使用java.util.Arrays工具对数组排序。

    int[] arr = new int[] {2,5,1,9,8,6,4};
    Arrays.sort(arr);
    Min = arr[0] 
    Max = arr[arr.length - 1]);

    第二种方法:

    获取最大值

    public static int getMax(int[] arr) {
    		int max = arr[0];
    		for(int i = 1;i < arr.length; i++) {
    			if (max < arr[i]) {
    				max = arr[i];
    			}
    		}
    		return max;
    	}

    获取最小值

    public static int getMin(int[] arr) {
    		int min= arr[0];
    		for(int i = 1;i < arr.length; i++) {
    			if (min> arr[i]) {
    				min= arr[i];
    			}
    		}
    		return min;
    	}

    两种方法的优劣:第一种方法由于事先对数组排序,排序后的数组可以同时获取最大最小值,由于使用了java数组工具,代码量更少。第二种方法更为直接,计算量更小,最大值和最小值的计算代码简单,只需要改动循环内的判断符号。两种方法各有优劣,当数组较小且需要同时获取最大最小值时,第一种方法更好。当数组较大时,使用第二种方法显然可以减少计算量,有更好的响应速度。

    测试:使用随机数生成一个大小为10000000的数组,通过获取数组最大值来比较两种方法的计算耗时。

    public static void main(String[] args) {
    		//生成大小为10000000的随机数组
    		int length = 10000000;
    		int[] arr = new int[length];
    		Random random = new Random();
    		for (int i = 0; i < length; i++) {
    			arr[i] = random.nextInt(length);
    		}
    		//第一种方法
    		long time1 = System.nanoTime();
    		Arrays.sort(arr);
    		System.out.println("最大值:" + arr[arr.length - 1]);
    		long time2 = System.nanoTime();
    		System.out.println("用时:" + (time2 - time1) + "纳秒");
    		//第二种方法
    		int max = getMax(arr);
    		System.out.println("最大值:" + max);
    		long time3 = System.nanoTime();
    		System.out.println("用时:" + (time3 - time2) + "纳秒");
    	}

    运行结果:

    对同一个数组进行计算。第一种方法计算需要消耗1331255400纳秒,也就是1.3秒左右。第二种方法耗时9589100纳秒,也就是9.5毫秒。两者速度相差也是非常大的,所以计算大型数组最大最小值还是推荐使用更为高效的第二种方法。

    展开全文
  • java遍历数组详细解答

    2018-11-23 17:33:00
    几个例题解答数组问题: public static void main(String[] args) { // TODO Auto-generated method stub ... * 遍历输出打印到控制台打印格式为 [56,33,51,49,102,23] */ int arr [] = {56,33,...

    几个例题解答数组问题:

    public static void main(String[] args) {
    	// TODO Auto-generated method stub
    	/*
    	 * 1、将数组int arr[]={56,33,51,49,102,23}
    	 * 遍历输出打印到控制台打印格式为 [56,33,51,49,102,23]
    	 */
    	int arr [] = {56,33,51,49,102,23};//定义一个数组
    	for(int i=0;i<arr.length;i++){//遍历数组
    		if(i==0){//当数组下标为0时输出的内容
    			System.out.print("["+arr[i]+",");
    		}else if(i<arr.length-1){//当下标满足数组个数减一时输出的内容
    			System.out.print(arr[i]+",");
    		}else{//当下标等于数组长度时输出的内容
    			System.out.print(arr[i]+"]");
    		}
    	}
    	
    	System.out.println("");//换行
    	System.out.println("");//换行
    	/*
    	 * 2、利用冒泡排序将数组进行从小到大排序  --   
    	 * int arr[]={56,33,51,49,102,23};
    	 */
    	for(int i=0;i<arr.length-1;i++){//循环轮数
    		for(int j=0;j<arr.length-i-1;j++){//每轮循环的次数
    			if(arr[j]>arr[j+1]){//如果前面的值大于后面的值,就互换两个元素的值
    				int temp =arr[j];
    				arr[j] = arr[j+1];
    				arr[j+1] = temp;
    			}
    		}
    	}
    	for(int i=0;i<arr.length;i++){//遍历排序后的数组
    		if(i<arr.length-1){//如果下标小于数组的长度减一,输出的内容
    			System.out.print(arr[i]+"<");
    		}
    		if(i == arr.length-1){//如果下标等于数组的长度减一,输出的内容
    			System.out.print(arr[i]);
    		}
    	}
    	
    	System.out.println("");//换行
    	System.out.println("");//换行
    	
    	
    	/*
    	 * 利用选择排序将数组进行从大到小排序  --  
    	 * int  arr[]={36,11,90,87,156,2};
    	 */
    	for(int i=0;i<arr.length-1;i++){//循环的轮数
    		for(int j=i+1;j<arr.length;j++){//每轮循环的次数
    			if(arr[i]<arr[j]){//如果前面的值小于后面的值就互换
    				int temp =arr[i];
    				arr[i] = arr[j];
    				arr[j] = temp;
    			}
    		}
    	}
    	for(int i=0;i<arr.length;i++){//遍历排序后的数组
    		if(i<arr.length-1){//如果下标小于数组长度减一,输出的内容
    			System.out.print(arr[i]+">");
    		}
    		if(i == arr.length-1){//如果下标等于数组的长度,输出的内容
    			System.out.print(arr[i]);
    		}
    	}
    	
    	System.out.println("");//换行
    	System.out.println("");//换行
    	
    	/*
    	 * 4、现在有如下一个数组:int arr1[]={1,3,4,5,0,6,6,0,5,4,7,6,7,0,5}; 
     		要求将以上数组中的0项去掉,将不为0的值存入一个新的数组,生成新的数组为:
    		int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5};
    	 */
    	int arr1 [] = {1,3,4,5,0,6,6,0,5,4,7,6,7,0,5};//定义一个数组
    	int zero = 0;
    	for(int i=0;i<arr1.length;i++){//统计数组arr1中0的个数,遇到0,zero就+1
    		if(arr1[i]==0){
    			zero++;
    		}
    	}
    	//System.out.print(zero);
    	System.out.println("");
    	System.out.println("");
    	
    	int newArr [] = new int [arr1.length-zero];//定义一个新的数组,它的长度为数组arr1的长度减去zero的个数
    	int j=0;//新数组的下标
    	for(int i=0;i<arr1.length;i++){//遍历数组arr1
    		if(arr1[i]!=0){//如果爱arr1中的元素不为0,就加入到新的数组中
    			newArr[j] = arr1[i];
    			j++;//加入新数组后,下标+1
    		}
    	}
    	for(int i=0;i<newArr.length;i++){//遍历生成的新数组
    		if(i==0){//如果新数组下标为0,输出的内容
    			System.out.print("生成的新数组为["+newArr[i]+",");
    		}else if(i<newArr.length-1){//如果新数组下标小于数组长度减一,输出的内容
    			System.out.print(newArr[i]+",");
    		}else{//如果新数组下标等于数组长度减一,输出的内容
    			System.out.print(newArr[i]+"]");
    		}
    	}
    	System.out.println("");//换行
    	
    	/*
    	 * 定义一个整型数组,求出数组元素的和、数组元素的最大值和最小值,并输出所求的结果。
    			arr[]={36,11,90,87,156,2};
    	 */
    	int arr2 [] = new int []{36,11,90,87,156,2};
    	//等价于int arr2[]={36,11,90,87,156,2};
    	int max = 0;//定义最大值
    	int min = 0;//定义最小值
    	int sum = 0;//定义和
    	for(int i=0;i<arr2.length;i++){//遍历数组
    		sum+=arr2[i];//求和
    	}
    	System.out.println("该数组的和为"+sum);//输出和
    
    	for(int i=0;i<arr2.length-1;i++){
    		for(int j1=0;j1<arr2.length-i-1;j1++){
    			if(arr2[j1]>arr2[j1+1]){
    				int temp = arr2[j1];
    				arr2[j1] = arr2[j1+1];
    				arr2[j1+1] = temp;
    			}
    		}
    	}
    	/*for(int i=0;i<arr2.length;i++){
    		System.out.print(arr2[i]+"  ");
    	}*/
    	System.out.println("");
    	max = arr2[arr2.length-1];
    	System.out.print("该数组的最大值为"+max);
    	System.out.println("");
    	min = arr2[0];
    	System.out.print("该数组的最小值为"+min);
    	
    	System.out.println("");
    	
    	/*
    	 * 反转数组: arr3[]={36,11,90,87,156,2,58};
    	 */
    	int arr3 [] = new int []{36,11,90,87,156,2,58};
    	int newArr3 [] = new int [arr3.length];
    	int k=0;
    	for(int i=0;i<arr3.length;i++){
    		newArr3[k] = arr3[arr3.length-1-i];
    		k++;
    	}
    	for(int i=0;i<newArr3.length;i++){
    		if(i==0){
    			System.out.print("["+newArr3[i]+",");
    		}else if(i<newArr3.length-1){
    			System.out.print(newArr3[i]+",");
    		}else{
    			System.out.print(newArr3[i]+"]");
    		}
    	}
    	
    	System.out.println("");
    	/*
    	 * 查表法:在命令行输入1~7的值,利用下标 获取星期几 1~7分别对应星期一~星期天;输出在控制台 星期一
    	 */
    	String str =args[0];
    	int a = Integer.parseInt(str);
    		String str1[]={"","星期一","星期二","星期三","星期四","星期五","星期六","星期天"};
    		if(a<0 || a>8){
    			System.out.print("输入的参数不合法,请重新输入!");
    		}
    		if(a>0 && a<8){
    			for(int i=0;i<str1.length;i++){
    				if(str1[a] == str1[i]){
    					System.out.println("今天是"+str1[i]);
    				}
    			}
    			
    		}
    	
    	
    	
    }
    

    }

    展开全文
  • 一、输出数组的最小值 ... import java.util.Arrays; public class Demo02 { public static void main(String[] args) { //输出数组最小值 int[] nums = new int[]{12,10,3,6,15};// int min = nums[0]; for(int i=...

    一、输出数组的最小值
    package cn.tedu.lili;
    import java.util.Arrays;
    public class Demo02 {
    public static void main(String[] args) {
    //输出数组最小值
    int[] nums = new int[]{12,10,3,6,15};//
    int min = nums[0];
    for(int i=1;i<=nums.length-1;i++){
    if(min>nums[i]){
    min = nums[i];
    }
    }
    System.out.println(min);
    }
    }
    输出:3

    二、输出数组的最小值图:
    在这里插入图片描述

    展开全文
  • 通过将min的值与数组的元素进行比较来遍历数组。如果任何元素的值都小于min,则将元素的值存储为min。考虑上面的数组。最初,min将保持值25。在第一次迭代中,min将与11比较。由于11小于25。Min将保持值11。在第二次...

    Java找出数组的最小值元素

    1 说明

    在此程序中,我们需要找出数组中存在的最小元素。这可以通过保持变量min来实现,该变量起初将保留第一个元素的值。通过将min的值与数组的元素进行比较来遍历数组。如果任何元素的值都小于min,则将元素的值存储为min。

    88b8dd4c67a9cf1537de3851c6176268.png

    考虑上面的数组。最初,min将保持值25。在第一次迭代中,min将与11比较。由于11小于25。Min将保持值11。在第二次迭代中,11将与7比较。现在,是7小于11。因此,min将取值为7。继续此过程,直到到达数组的末尾。最后,min将保留数组中的最小值元素。

    2 算法思路

    步骤1:开始

    步骤2:初始化arr [] = {25,11,7,75,56}

    步骤3: min = arr [0]

    步骤4:对(i = 0; i

    步骤5: if(arr [i]

    min = arr [i]

    步骤6:打印“Smallest element in given array:”

    第7步:打印分钟

    步骤8:结束

    3 程序实现

    /**

    * 一点教程网: http://www.yiidian.com

    */

    public class SmallestElement_array {

    public static void main(String[] args) {

    //Initialize array

    int [] arr = new int [] {25, 11, 7, 75, 56};

    //Initialize min with first element of array.

    int min = arr[0];

    //Loop through the array

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

    //Compare elements of array with min

    if(arr[i]

    min = arr[i];

    }

    System.out.println("Smallest element present in given array: " + min);

    }

    }

    以上代码输出结果为:

    Smallest element present in given array: 7

    展开全文
  • 数组遍历输出 int [] array={1,2,3,4,5}; int len=array.length;//求数组长度; for(int i=0;i<len;i++) { System.out.println(array[i]); } 求数组最大最小值 1.求数组最大值 int [] array={1,2,3,4,5,6}; ...
  • 遍历数组

    2018-11-25 19:34:36
    几个例子来看遍历数组的过程 以及数组的一些计算 public static void main(String[] args) { // TODO Auto-generated method stub /* * 1、将数组int arr[]={56,33,51,49,102,23} * 遍历输出打印到控制台打印...
  • Foreach遍历数组

    2020-10-05 21:11:56
    Foreach遍历数组 package zy2; import java.util.Arrays; //3 . 编写Java程序实现:创建一个整数数组{13,10,9,4,5,10,2},输出其中的最大值和最小值。 public class zy3 { public static void main(String[] ...
  • 文章目录概念定长数组概念语法代码示例变长数组概念定义语法代码示例添加/修改/删除元素代码示例遍历数组 概念 scala中数组的概念是和Java类似,可以用数组来存放一组数据。scala中,有两种数组,一种是定长数组,...
  • Java输出数组最小值的几种方法

    千次阅读 2020-04-12 12:09:06
    Java输出数组最小值的几种方法 要求: 首先创建一个长度是5的数组 然后给数组的每一位赋予随机整数 找出最小(大)的一个值出来 最小值: 方法一: 该方法来自HOW2J:...
  • 今儿使用了Java泛型的知识写了一道遍历数组求字符串最大和最小值的程序,结果是漏洞百出,书上的写的东西太深奥了,还是要好好总结一下。 Pair.java是泛型类: // Pair.java public class Pair { //对泛型T的声明 ...
  • // 1-增强版for循环遍历数组 int[] a = new int[]{10,15,9,21,5}; // 1-1常规遍历操作 System.out.println("常规遍历:"); for(int i=0; i<a.length; i++){ int each = a[i]; System.out.print(each ...
  • JAVA SE自学 基础篇什么是数组语法循环遍历数组基于数组的常见算法 目标 数组在内存中的存储方式 数组的几个要素 数组相关的语法 数组的遍历 数组的相关算法 什么是数组 数组, 一组数据, 一组相同类型的数据. 在...
  • 如何使用遍历数组和方法的思想(形参和实参概念的理解),求一个生成一个数值随机的数组,求出最大值和最小值 一、实现思路 1.创建一个数值随机的int型数组 2.第一种方式:使用数组工具Arrays.sort()方法对数组进行...
  • 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的...菜鸡觉得这道题目颇为简单,只要遍历数组array,如果存在array[i] < array[0],那么array[i]一定就是
  • public class ArrayTest1 { public static void main(String[] args) { int[] arr = { 33, 22, 66, 66, 11, 44 }; // 定义参照物 ... System.out.println("数组最小值为:" + min); } }  
  • 在针对一些需要遍历一个数组,同时使用广义动态规划(即至少有一个狭义动态规划条件不满足)的方法中,如何不使用递归,并且只用O(n)时间遍历数组呢?
  • 旋转数组最小值

    2016-04-18 13:02:00
    问题  把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。...从头到尾遍历数组一次,就能找出最小的元素,时间复杂度显然是O(n)。但这个思路没有利用输入数组的特性。既然有时间复杂度更小...
  • 本题给定一个整数数组A,求A的所有(连续)子数组最小值的和,直观上可以用暴力法:列出A的所有子数组,分别求出这些子数组最小值,再分别将这些最小值相加。但是通过分析时间复杂度:列举出所有子数组需要 O(n2...
  • 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。...一、遍历数组 因为原数组是非减排序的,在旋转之后,被旋转的部分和旋转的部分还是非减排序,只需要判断在第i个...
  • 学习目标数组定义定长数组定义语法注意示例一参考代码结果示例二参考代码结果变长数组概念定义语法示例一参考代码结果示例二参考代码结果添加/修改/删除元素示例参考代码遍历数组两种方式遍历示例一参考代码结果示例...
  • import java.util.Scanner; public class day04_3 { public static void main(String[] args) { // TODO Auto-generated method stub // 控制台接收,创建成绩对象 Scanner scoreJava = new Scanner...
  • 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转...考虑数组旋转和未旋转的情况,逆序遍历数组。如果已经旋转过,那么数组中第一组 array[i]&...
  • 要求获取一个旋转数组的最小值。这本质上是一个求最值的问题,最简单的方法就是顺序遍历数组,从中找出最小值,该方法的时间复杂度为O(n)。但这种方法会被面试官鄙视的,所以我们寻找更为...
  • 输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组最小值为1。 来源:力扣(LeetCode) 链接:...
  • 创建数组之后,就要使用它:1. 得到数组的长度:数组名.length 属性, 例如:public class demoLength{ public static void main(String[] args){ int a[] = {3,5,7,9};... //用.length属性输出数组的长度 ...
  • for(类型 变量名:数组){ System.out.print(变量名); … } 冒泡排序 //冒泡排序 int[] arr = {4,8,1,9,6,2}; for(int i = 0;i < arr.length-1;i++){//外层循环控制总体比较次数 for(int j...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,462
精华内容 11,384
关键字:

java遍历数组输出最小值

java 订阅