A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 磊子 中级黑马   /  2015-9-13 22:44  /  241 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

数组高级:
        冒泡排序:
                数组:int[] arr = {24,69,80,57,13};
                自己写代码实现:最后打印的结果是:  13,24,57,69,80
                原理:相邻元素两两比较,大的往后走,第一次循环结束后,最大值就在最后(最大索引处)。
                        原值:24,69,80,57,13
                        第一:24,69,57,13,80     比较了:4次
                        第二:24,57,13,69,80     比较了:3次
                        第三:24,13,57,69,80         比较了:2次
                        第四:13,24,57,69,80     比较了:1

                方法名:bubbleSort
                        for(int i = 0; i<arr.length-1 ; i++ ){   //总共要比较的次数
                                //内循环控制每次比较需要比较的次数
                                for(int j=0; j<arr.length-1-i; j++){ // -1是为了防止索引越界,-i是提高效率
                                        //相邻元素两两比较,大的往后走
                                        if(arr[j] > arr[j+1]){    //arr[j]=80   arr[j+1]=57
                                                int temp = arr[j];
                                                arr[j] = arr[j+1];
                                                arr[j+1] = temp;
                                        }
                               
                                }

                        }


        选择排序:
                数组:int[] arr = {24,69,80,57,13};
                自己写代码实现:最后打印的结果是:  13,24,57,69,80
                原理:从最小索引处开始,那一个索引上的元素,依次与其他索引位置的元素比较,小的在前,大的在后。

        二分(折半)查找:
                前提条件:数组必须是有序的。

                无序数组可以使用二分查找吗?  不可以,原因是因为二分查找的前提条件是数组必须是有序的,即使你对无序数组进行排序,那么也很有可能,元素的位置发生改变。
                8   9  12  10  5    排序后:5  8  9  10 12   60

        Arrays:数组工具类
                public static String toString(int[] arr);
                public static void sort(int[] arr);
                public static int binarySearch(int[] arr,int key);   如果没找到,返回:-插入点-1

基本类型对应的包装类?

        为什么要有基本类型的包装类?
                大白话,把基本类型包装起来,包装成对象,那么它就可以来调用方法了。
        常用操作:
                在包装类和String之间做转换。(开发中常用的是:Integer类型和String类型之间的转换)

        Integer类:
                构造方法:
                        Integer(int i);
                        Integer(String str);
               
                String和int类型之间的相互转换:
                        String ---》 int
                                public static int parseInt(String s);
                                总结:
                                        基本类型的包装类有8种,其中7种都有parseXxx的方法(Character类除外),可以把这7种数据的字符串形式转成其基本类型。
                        int --->>> String
                                1、和""拼接。
                                2、public static String toString(int a);

                JDK1.5以后的新特性:
                        自动装箱:把基本类型转成其对应的包装类。
                        自动拆箱:把包装类转成其对应的基本类型。
                        注意:使用Integer i = null; 来调用方法或者进行自动拆箱的时候,会报一个异常:NullPointerException。

                Integer i1 = 127;
                Integer i2 = 127;
                System.out.println(i1==i2); 问:结果是什么?为什么?
                        答:true,-128~127之间的数据是byte的取值范围,如果在这个范围内做自动装箱,不会重新创建对象,而是去常量池(byte常量池)中找,超过这个范围,做自动装箱,会重新创建对象。

1 个回复

倒序浏览
路过, 支持一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马