Java数组你想要的都在这里

本篇文章主要讲解Java数组的一些常用方法,并进行实例演示

前言
在Java中,数组可以说是比较重要的基础之一,它出现在Java的方方面面,不管是算法、数据结构中,都能经常看见它的身影,而这也成为了面试官经常考察应聘者的能力水平之一,所以,对数组的深入学习显得尤为重要。

一.数组的定义

数组简介:数组是用来存储固定大小类型元素的一种数据结构。

数组的特点:
1.数组的长度是固定的,数组一旦被创建,它的大小就是不可改变的。
2.数组中的元素类型必须相同,不能出现混合类型。
3.数组类型可以是基本数据类型和引用类型。

数组的声明
1.type[] arrname;
2.type arrname[];
举例:int[] age、int age[]

数组声明时需要注意:
声明数组时没有创建数组
构建数组时必须指定长度
只有数组实例化对象后才会分配内存空间,且空间和数组长度有关

二.数组的常用方法(实例演示)

1.数组的声明及打印数组

String[] str1=new String[3];
String[] str2=new String[]{"a","b","c"};
String[] str3={"a","b","c"};
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);

结果:
在这里插入图片描述
发现并没有获得正确的元素

注意:数组不能直接用System.out.println()直接打印,此时打印的是数组创建时的地址,无法获得数组中的具体元素。

修改:

System.out.println(Arrays.toString(str1));
System.out.println(Arrays.toString(str2));
System.out.println(Arrays.toString(str3));

结果:
在这里插入图片描述
通过Arrays.toString()方法可以获取数组中的字符。

2.数组转换成List(重要)

String[] str2=new String[]{"a","b","c"};
List<String>list=new ArrayList<String>(Arrays.asList(str2));
System.out.println(list);

结果:
在这里插入图片描述
数组转换成list使用的方法为Arrays.asList(目标数组)

3.LIst转成数组

List<String>list=new ArrayList<String>();//创建ArrayList
list.add("abc");//添加元素
list.add("12");
System.out.println(list);
String[] strs=list.toArray(new String[list.size()]);//list.toArray()将list转成数组,()内是创建的数组对象,大小为list的元素个数
for(String s:strs){//遍历数组打印各个元素
    System.out.println(s);
}

结果:
在这里插入图片描述

4.判断数组中是否包含某个元素

System.out.println(Arrays.toString(strs).contains("12"));//判断str2这个数组中是否包含"12"这个字符

结果:
在这里插入图片描述
5.数组中替换某种元素

String[] animals={"cat","dog","pig","bird","pig1","bird"};
int index=-1;
String animal="rabbit";
for(int i=0;i<animals.length;i++){
    if(animals[i].equals("bird")){
        index=i;
        animals[index]=animal;
    }
}
for(int i=0;i<animals.length;i++){
    System.out.println(animals[i]);
}

结果:
在这里插入图片描述
6.数组增加元素
方法一:
理论上数组的大小已经固定,我们可以将数组先转成list在指定位置添加元素,最后再转成数组。

String[] str={"a","b","c"};
List<String>list=new ArrayList<>(Arrays.asList(str));//将原数组转成list
list.add(2,"cdefg");//指定下标2位置添加元素
System.out.println("原数组:"+str);
System.out.println("转换原数组输出格式:"+Arrays.toString(str));
String[] strnew=list.toArray(new String[list.size()]);//指定位置添加元素后的list转成新的数组
System.out.println("新数组:"+strnew);
System.out.println("转换新数组输出格式:"+Arrays.toString(strnew));

结果:
在这里插入图片描述

方法二;
新建一个比原数组大的数组,copy原数组,设置新元素位置

String[] str={"a","b","c"};
String[] newstr=new String[4];//这部分可以直接连起来写成String[] newstr=Arrays.copyOf(str,4);
newstr=Arrays.copyOf(str,4);//copyOf()里的参数为:copy的原数组,新数组的大小
newstr[3]="cdefg";
System.out.println("新数组:"+newstr);
System.out.println("转换新数组输出格式:"+Arrays.toString(newstr));

结果:

在这里插入图片描述
注意,此方法为新数组copy了原数组后,在新数组末尾添加元素,如果要在指定位置添加元素可以用第一种方法。

7.数组填充
全部填充替换:

String[] str={"a","b","c"};
Arrays.fill(str,"0");
System.out.println(Arrays.toString(str));

结果:
在这里插入图片描述

指定填充

String[] str={"a","b","c"};
Arrays.fill(str,0,2,"0");//从数组下标0到2-1的位置填充
System.out.println(Arrays.toString(str));

结果:
在这里插入图片描述
Arrays.fill(str,0,2,“0”)解释为从数组str的下标0开始到下标为2-1的位置填充字符"0"。

填充案例:

int[] number=new int[5];
System.out.println("number一共有"+number.length+"个元素"+",它们是:");
for(int i=0;i<number.length;i++){
    Arrays.fill(number,i);
    System.out.println("number["+i+"]="+i);
}

结果:
在这里插入图片描述

8.将整型转换成字节型数组

byte[] bytes= ByteBuffer.allocate(6).putInt(4).array();
for(byte b:bytes){
    System.out.format("0x%x,",b);
}

结果:

在这里插入图片描述

好了,数组的一些常用方法就讲到这,如果这些方法都能熟练掌握,那么面对不同的对数组的要求,我相信都能够很熟练地实现它。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页