数组
/*
* 数组:是具有相同数据类型的集合。
*
* 数组的定义
* 数据类型 [] 数组名 = 数组值 ;
*
* 数组可以没有元素。
* 数组是通过下标访问的数组里面的元素,数组[下标] 。下标从0开始
* 数组的长度通过length属性访问的。数组长度是固定不变的。 数组 .length
* 数组是引用数据类型 。
* 数组在内存中是一段连续的内存空间。
* 引用数据类型:默认值都是null
* 基本数据类型:默认值是多少? byte short int long (0) float double(0.0) char(空字符) boolean:false
*/
// 方式1:使用{}将每个元素装起来,元素之间用,号隔开。静态方式
// String [] names = {“zhangsan”,“lisi”,“wangwu”,“zhaoliu”,“tianqi”};
// 方式2:静态方式
// String [] names = new String [] {“zhangsan”,“lisi”,“wangwu”,“zhaoliu”,“tianqi”};
// 方式3:动态方式
String [] names = new String[5];
names[0] = “zhangsan”;
names[1] = “lisi”;
names[2] = “wangwu”;
// System.out.println(names[2]);
// System.out.println(names.length);
遍历数组
for(int i=0;i<names.length;i++){
System.out.println(names[i]); }
遍历集合的时候可以使用增强for循环
for(int b : arr){
System.out.println(b);
}
数组中的一些方法
package day03;
import java.util.Arrays;
public class SSA {
public static void main(String[] args) {
int array[] ={8,2,4,4,5,6,7,8,9};
// int result[]=Arrays.copyOf(array, 5) ;//前面是要复制的数组,还后面是复制的长度;
// int result[]=Arrays.copyOfRange(array, 2, 8);//第一个是数组,第二个是从下标几开始,第三是从下标几结束,范围是左闭右开;
int result[]=new int [20];
System.arraycopy(array, 2, result, 2, 6);
//第三种方法要先定义一个数组且给长度;
/*5个变量分别为 : 1 原数组名
* 2 原数组名从下标几开始被复制
* 3 复制数组名
* 4 复制数组名从下标几开始被复制
* 5 被复制长度
*/
for(int a:result){
System.out.print(a+" ");
}
}
}
推广
arrays.binarysearch( 数组名,数组中的元素值 );//二分查找(查找元素在数组中的下标位置),要使用之前先排序;
arrays.sort(数组名);//排序方法
面试题:
1.给数组扩容的方法?
1).int result[]=Arrays.copyOf(array, 5) ;//前面是要复制的数组,还后面是复制的长度
2).int result[]=Arrays.copyOfRange(array, 2, 8);//第一个是数组,第二个是从下标几开始,第三是从下标几结束,范围是左闭右开;
3).int result[]=new int [20];
System.arraycopy(array, 2, result, 2, 6);