黑马程序员技术交流社区

标题: day05作业 [打印本页]

作者: 爱的泪水    时间: 2015-10-1 00:33
标题: day05作业
1:数组的概念?有什么特点?
存储同种数据类型的容器,特点:数组是存储同一种数据类型多个元素的集合,数组可以存储基本数据类型,也可以存储引用数据类型.
数组定义格式:是数据类型[] 数组名=new 数据类型[数组的长度].
2:一维数组的定义格式?
1.需要一个容器,但是不明确容器的具体数据,数据类型[] 数组名=new 数据类型[数组长度];
2.需要一个容器,存储已知的具体数据.数据类型[] 数组名=new 元素类型[]{元素,元素,......};

3:数组操作的两个小问题
1.数组脚标越界异常(ArrayIndexOutOfBoundsException):访问到了数组中的不存在的脚标时发生;
2.空指针异常(NullPointerException):当引用型变量没有指向任何实体时,用其操作实体,就好发生该异常.

4:数组常见操作:
        数组遍历(依次输出数组中的每一个元素)
        数组获取最值(获取数组中的最大值最小值)
        数组元素逆序 (就是把元素对调)
        数组查表法(根据键盘录入索引,查找对应星期)
        数组元素查找(查找指定元素第一次在数组中出现的索引)
  数组遍历: public static void main(String[] args) {
            int[] arr={1,3,7,9,10};
            for (int x=0;x<arr.length;x++) {
            System.out.println("arr["+x+"]="+arr[x]+";");
                }
        }
}
  数组获取最大值:System.out.println("max="+max);
             public static int getMax(int[] arr]{
                       int max=arr[0];
                             for (int i=0;x<arr.length;i++ ) {
                                         if (arr(i)>max) {
                                                 max=arr(i)
                                          }
                                     return max;
                                 }
                        }
}
数组获取最小值:System.out.println("min="+min);
             public static int getMax(int[] arr]{
                       int max=arr[0];
                             for (int i=0;x<arr.length;i++ ) {
                                         if (arr(i)<min) {
                                                 min=arr(i)
                                          }
                                     return max;
                                 }
                        }
}
数组元素逆序:public static void reverseArray(int[] arr) {
                                for (int i = 0;i < arr.length / 2 ; i++) {
                                        //arr[0]和arr[arr.length-1-0]交换
                                        //arr[1]和arr[arr.length-1-1]交换
                                        //arr[2]和arr[arr.lentth-1-2]
                                        //...
               
                                        int temp = arr[i];
                                        arr[i] = arr[arr.length-1-i];
                                        arr[arr.length-1-i] = temp;
                                }
                        }
数组查表法:
                public static void main(String[] args) {
                Scanner sc=new Scanner(System.in);
                System.out.println("请输入对应1-7星期的范围");
                int week=sc.nextInt();
                System.out.println("星期"+getWeek(week));
        }
    public static char getWeek(int week){
                char[] arr={' ' ,'一','二','三','四','五','六','日'};
                return arr[week];
                }
数组元素查找:
                  public static int getIndex(int[] arr,int value) {
                                for (int i = 0;i < arr.length ;i++ ) {                               
                                        if (arr[i] == value) {                                                       
                                                return i;
                                        }
                                }
                                return -1;
                        }


5:二维数组定义格式
1.数据类型[][] 数组名=new 数据类型[m][n]或者也样也可以: 数据类型arr [][]=new int[m][n],数据类型[]数组名[]=new 数据类型[][]
后面那两种不建议写
2.数据类型[][] 数组名=new 数据类型[m][];
3.数据类型[][] 数组名={{元素,元素,,,},{元素,元素,,,},{元素,元素,,,}+.....}}
6:案例
        A:二维数组遍历
        B:公司年销售额求和
                某公司按照季度和月份统计的数据如下:单位(万元)
                第一季度: 22,66,44
                第二季度: 77,33,88
                第三季度: 25,45,65
                第四季度: 11,66,99
class demo {
        public static void main(String[] args) {
                int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};

                int sum = 0;                                                                       
                for (int i = 0;i < arr.length ;i++ ) {                       
                        for (int j = 0;j < arr[i].length ;j++ ) {       
                                sum = sum + arr[i][j];                               
                        }
                }

                System.out.println(sum);
        }
}

7:谈谈Java语言中参数传递问题
常见问题:
1.Java中有没有引用传递?
2.谈谈你对值传递和引用传递的区别?
答:Java中没有真正意义上的引用传递.
基本类型的变量作为参数传递过来的是变量的内存地址值,我们对变量的操作(形式参数)




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