一、数组
1.1、概述
数组是指可以同时存放固定长度的同一类型的数据。
1.2、数组的声明
数组的声明有三种方式,具体如下:
1.2.1、方式一
/*** 声明数组的第一种方式* cityArray:数组名,注意:不包括[]*/
@Test
public void declareArrayTest1() {String cityArray[] = new String[4];cityArray[0] = "北京";cityArray[1] = "上海";cityArray[2] = "广州";cityArray[3] = "深圳";System.out.println(cityArray[0]);
}
1.2.2、方式二
/*** 声明数组的第二种方式* cityArray:数组名,注意:不包括[]*/
@Test
public void declareArrayTest2() {String[] cityArray = new String[4];cityArray[0] = "杭州";cityArray[1] = "武汉";cityArray[2] = "南京";cityArray[3] = "西安";System.out.println(cityArray[0]);
}
1.2.3、方式三
/*** 声明数组的第三种方式* cityArray:数组名,注意:不包括[]*/
@Test
public void declareArrayTest3() {String[] cityArray = {"金华","丽水","衢州","舟山"};System.out.println(cityArray[0]);
}
1.3、数组常见操作
/*** 数组常见操作* 1、排序* Arrays.sort()可以对数字、字符进行排序,但是不能对中文字符排序* 2、判断某个数是否在数组中* 3、判断两个数组是否相同* Arrays.equals(arr1,arr2):返回boolean类型,如果为true则代表两个数组相等,否则不相等* 4、将数组转换成人可以看懂的数据* Arrays.toString(array)*/
@Test
public void arraySortTest() {int[] scoreArray = {65, 36, 98, 85, 72, 99, 100};System.out.println("==================================================");StringBuilder sbBefore = new StringBuilder();StringBuilder sbAfter = new StringBuilder();for (int i : scoreArray) {sbBefore.append(i + "\t");}System.out.println("排序前:" + sbBefore);Arrays.sort(scoreArray);for (int i : scoreArray) {sbAfter.append(i + "\t");}System.out.println("排序后:" + sbAfter);System.out.println("==================================================");int existFlag = Arrays.binarySearch(scoreArray, 85);System.out.println("existFlag = " + existFlag); // existFlag = 3,如果存在返回的是索引所在位置,索引从0开始System.out.println("==================================================");int[] arr1 = {1, 2, 3};int[] arr2 = {1, 2, 3};Arrays.equals(arr1, arr2);System.out.println("==================================================");String[] cityArray = {"金华", "丽水", "衢州", "舟山"};System.out.println(cityArray);System.out.println(Arrays.toString(cityArray));
}
1.4、String vs StringBuffer vs StringBuilder
1.4.1、概述
String修改字符串时,是在内存中创建一个新的字符串,并把新的地址指向给String对象,比较浪费空间。StringBuffer和StringBuilder是在初始时创建一个容器,当修改的时候只是修改容器中的内容,而不是创建一个新的容器,所以如果业务需要经常变更字符串的话,最好不要使用String。
1.4.2、StringBuffer vs StringBuilder
StringBuffer是线程安全的,部分源码如下:
StringBuilder是线程不安全的,部分源码如下: