黑马程序员技术交流社区

标题: 数组 [打印本页]

作者: fantianfei    时间: 2015-6-29 13:31
标题: 数组
数组:同一种类型数据的集合,其实数组就是一个容器。
优点:可以自动给数组中的元素从0开始编号,方便操作这些元素。

格式1:
元素类型[] 数组名 = new 元素类型[元素个数或数组长度]
示例:int[] arr = new int[5];
int arr[] =  new int[5];

格式2:
元素类型[] 数组名 = new 元素类型[]{元素,元素,......};
int[] arr = new int[]{1,3,5,7};       
int[] arr ={1,3,5,7};

数据类型:基本数据类型和引用数据类型。
数组类型是引用数据类型里三种的其中一种。

栈内存:数据使用完毕会自动释放,局部变量都存储在栈内存中。
堆内存:用于存放实体,数据使用完毕后不会自动释放。
堆内存中的实体是用来封装数据的,而且都有默认初始化值.
如:int:0   double:0.0   float:0.0   boolean:false

需求:给定一个数组{5,1,6,4,2,8,9},获取数组中的最大值,以及最小值。
思路:
1,获取最值需要进行比较,每一次比较都会有一个较大的值,因为该值不确定,进行一个变量临时存储。
2,让数组中的每一个元素都和这个变量中的值进行比较。
3,当所有的元素都比较完成,那么该变量中存储的就是数组中的最大值了。

步骤:
1,定义一个变量,初始化为数组中的任意一个元素即可。
2,通过循环语句对数组进行遍历。
3,在遍历过程中定义判断条件,如果遍历的元素比变量中的元素大,就赋值给该变量。

定义一个功能完成,以便提高复用性。
1,明确结果,数组中的最大元素:int。
2,未知内容,一个数组。int[]

代码1:

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

        public static void main(String[] args)
        {
                int[] arr ={5,1,6,4,2,8,9};

                int max=getMax(arr);
                System.out.println("max="+max);

        }
}




获取最大值另外一个办法,
可不可以将临时变量初始化为0呢?可以,这种方式其实是在初始化为数组中的任意一个角标。
代码2:


class Shuzu
{
        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;
                }
                        return arr[max];
        }

        public static void main(String[] args)
        {
                int[] arr ={5,1,6,4,2,8,9};

                int max=getMax_2(arr);
                System.out.println("max="+max);
        }
}



作者: 风随心动    时间: 2015-6-29 13:37
总结的很好




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2