系列十二、数组
2024-01-09 19:40:52
一、数组
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是线程不安全的,部分源码如下:
文章来源:https://blog.csdn.net/HelloWorld20161112/article/details/135484062
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!