写在前面

Java复习笔记,第三篇

笔记

String类

比较字符串内容时用equals方法str1.equals(str2)
其他的一些关于String的方法
mark

mark

concat() 方法:连接指定字符串
String str = "aaabbbccc";
str = str.concat("dd");

结果为aaabbbcccdd

java.util.Arrays类的常用方法

  1. Arrays.toString()方法

    这里的toString()方法跟之前的toString()方法有很大的区别,这里的Arrays.toString()方法主要是实现打印数组元素的值

  2. Arrays.sort( )排序

    按照顺序对数组的数据进行排列

  3. Arrays.binarySearch( )二分法查找

    使用二分法查找前必须先对指定数组进行排序,Arrays.binarySearch( )方法查找到后将返回排序后的索引值,没有则返回-1,未排序直接查找也返回-1

二维数组

//获取的二维数组第一维数组的长度。
System.out.println(a.length);
//获取第二维第一个数组长度。
System.out.println(a[0].length);

数组

冒泡排序
package cn.xgblack.study03;

import java.util.Arrays;
/**
 * 冒泡排序
 * @author xg
 * @time 2019年4月8日
 */
public class TestBubbleSort {

    public static void main(String[] args) {
        int[] a = { 3, 1, 6, 2, 9, 0, 7, 4, 5, 8 };
        bubbleSort(a);
        System.out.println(Arrays.toString(a));
    }

    public static void bubbleSort(int[] array) {
        int temp = 0;
        for(int i = 0;i <= array.length - 1;i++) {
            boolean flag = true;
            for(int j = 0;j<array.length - 1 - i;j++) {

                if(array[j] > array[j+1]) {
                    temp = array[j + 1];
                    array[j+1] = array[j];
                    array[j] = temp;

                    flag = false;
                }
                System.out.println(Arrays.toString(array));
            }
            if(flag) {
                break;
            }
            System.out.println("#########################");

        }
    }

}

结果截图:

mark

二分法查找
package cn.xgblack.study03;

import java.util.Arrays;
/**
 * 二分法查找数组元素
 * @author xg
 * @time 2019年4月8日
 */
public class TestBinarySearch {

    public static void main(String[] args) {
        int[] arr = { 30,20,50,10,80,9,7,12,100,40,8};
        Arrays.sort(arr);

        System.out.println(Arrays.toString(arr));
        System.out.println("###################");
        System.out.println(myBinarySearch(arr, 40));
        System.out.println("###################");
        System.out.println(myBinarySearch(arr, 500));


    }

    public static int myBinarySearch(int[] array,int value) {
        int low = 0;
        int high = array.length - 1;

        while(low <= high) {
            int mid = (low + high)/2;

            if(array[mid] == value) {
                return mid;
            }
            if(value > array[mid]) {
                low = mid + 1;
            }
            if(value < array[mid]) {
                high = mid - 1;
            }
        }
        return -1;
    }

}

结果截图:

mark

包装类的缓存

Integer类中,会缓存[-128,127]之间的数字。(系统初始的时候,创建了[-128,127]之间的缓存数组),当调用valueOf()的时候,首先会检查是否在这个范围之内,如果在则直接从缓存数组中去取,不在的话就创建新的Integer对象。


道也者,不可须臾离者也,可离非道也。