`
wuqiwei
  • 浏览: 21156 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

黑马程序员—数组(常见操作—获取最值)

阅读更多



 ------- android培训java培训、期待与您交流! ----------

 

class ArrayTest// 常见操作 获取最值
{
	public static void main(String[] args) 
	{


	//给定一个数组{5,1,6,4,2,8,9} --->获取数组中的最大值 以及最小值
		
		int [] arr = {5,1,6,4,2,8,9};

		int max=getMax(arr);//右边不是写getMax(int [] arr) 而是直接 getMax(arr);就行
		System.out.println("max = "+max);
		int max_2=getMax_2(arr);
		System.out.println("max_2 = "+max_2);


		int min=getMin(arr);
		System.out.println("min = "+min);
		int min_2=getMin_2(arr);
		System.out.println("min_2 = "+min_2);

System.out.println("---------------------int型最值-----------------------");

		double [] arrd = {-1.564,1.6576,6.342,47.432521,2.2345,8.1,9.888};

		double maxd=getMax(arrd);
		System.out.println("maxd = "+maxd);

		double mind=getMin(arrd);//不要丢;
		System.out.println("mind ="+mind);

System.out.println("---------------------double型最值-----------------------");

//boolean型数组
		boolean [] arrb = new boolean [3];//不要丢;
		System.out.println(arrb[1]);

System.out.println("---------------------boolean型值不是true就是false-----------------------");

/*
一: 获取数组中的最大值。
	思路:
	1,获取最值需要进行比较。每一次比较都会有一个较大的值。因为该值不确定。
	   通过一个变量进行临时存储。
	2,让数组中的每一个元素都和这个变量中的值进行比较。
	   如果大于了变量中的值,就用该该变量记录较大值。
	3,当所有的元素都比较完成,那么该变量中存储的就是数组中的最大值了。

	步骤:
	1,定义变量。初始化为数组中任意一个元素即可。
	2,通过循环语句对数组进行遍历。
	3,在遍历过程中定义判断条件,如果遍历到的元素比变量中的元素大,就赋值给该变量中的元素。
	
	需要定义一个功能来完成。以便提高复用性。
	1,明确结果,数组中的最大元素 int。
	2,未知内容:一个数组。int[]
*/	

	}
	 
	 public static int getMax(int [] arr)
		{	
			int max=arr [0];
			for (int x=1;x<arr.length ;x++) //令x=1 因为arr[0]与自己比无意义
			{					
				if (arr[x]>max)/*自己写的是arr[x]>arr[0] 应该写>z 因为已经定义了
							   同时 为了增加阅读性 今后一定要注意自己的名称规
							   范 如类名和函数名 还有这里 目的是求最大值 所以可以
							   把z 写为 max 更利于阅读 */
				{
					/*arr[x]=max;这样写是不对的 结果还是5 因为先入为主的关系 即如果
								 有arr[x]>max 就会令其等于max 即arr[0] 所以不能这样写
								 应该是 max=arr[x];这样才相当于有值大于定义的max(arr[0])
								 就将值 赋予max*/
					 max=arr[x];
				}
			}
			return max;//也应该返回z 不是arr[x](这个返回值类型不对)
		}

//也可以将临时变量初始化为0 其实就是在初始化为数组中任意一个角标 		


	 public static int getMax_2(int [] arr)
		{	
			int max=0;
			for (int x=1;x<arr.length ;x++)
			{					
				if (arr[x]>arr[max])
				{
					 max=x; //上面比完以后 用max记录住大的角标 因为开始定义的就是角标
				}
			}
			return arr[max];
		}


//获取最小值 也是两种方法:

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


		public static int getMin_2(int [] arr)
		{	
			int min=0;
			for (int x=1;x<arr.length ;x++ )
			{
				if (arr[x]<arr[min])
				{
					min=x;
				}
			}
				return arr[min];//不能写成int arr[x] 因为在for外没有定义x 所以不能
		}

//二.获取double型数组的最大值 最小值 因为功能相同 所以定义相同的函数名称 以重载形式存在

public static double getMax(double [] arrd)//这就是重载 参数个数相同 类型不同
	{
		double max=arrd[0];
		for (int x=1;x<arrd.length ;x++ )
		{
			if (arrd[x]>max)
			{
				max = arrd[x];
			}
		}
			return max; 
	}
		
public static double getMin(double [] arrd)
	{
		double min=arrd[0];
		for (int x=1;x<arrd.length ;x++)
		{
			if (arrd[x]<min)
			{
				min=arrd[x];
			}
		}
			return min;
	}
}

 

  • 大小: 2.7 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics