数组 相同数据类型的元素组成的集合我们称之为数组 数组中能够存储元素的数量最大值我们称之为该数组的长度 数组声明后该数组的长度不可修改 数组声明后没有赋值的index位置上赋值为该数组数据类型的初始值(默认值)
1 数组
@Test
public void test ( ) {
int a = 10 ;
int b = 20 ;
int c = 30 ;
int x = 10 , y = 20 , z = 30 ;
int [ ] array = { 10 , 20 , 30 } ;
}
2 数组赋值与读取
@Test
public void test ( ) {
int [ ] array = new int [ 5 ] ;
array[ 2 ] = 20 ;
System . out. println ( array[ 2 ] ) ;
}
3 数组的三种声明方式
@Test
public void test ( ) {
int [ ] arr0 = new int [ 5 ] ;
int [ ] arr1 = new int [ ] { 5 } ;
int [ ] arr2 = { 5 } ;
}
4 数组下标越界
@Test
public void test ( ) {
int [ ] array = new int [ 5 ] ;
array[ 2 ] = 20 ;
System . out. println ( array[ 2 ] ) ;
array[ 2 ] = 200 ;
System . out. println ( array[ 2 ] ) ;
System . out. println ( array[ 5 ] ) ;
}
5 读取未赋值数组下标位置,获取到的是该数组类型的默认值
@Test
public void test01 ( ) {
int [ ] array = new int [ 5 ] ;
array[ 2 ] = 20 ;
System . out. println ( array[ 2 ] ) ;
System . out. println ( array[ 3 ] ) ;
}
@Test
public void test02 ( ) {
byte [ ] a0 = new byte [ 5 ] ;
short [ ] a1 = new short [ 5 ] ;
int [ ] a2 = new int [ 5 ] ;
long [ ] a3 = new long [ 5 ] ;
double [ ] a4 = new double [ 5 ] ;
float [ ] a5 = new float [ 5 ] ;
char [ ] a6 = new char [ 5 ] ;
boolean [ ] a7 = new boolean [ 5 ] ;
String [ ] a8 = new String [ 5 ] ;
System . out. println ( a0[ 2 ] ) ;
System . out. println ( a1[ 2 ] ) ;
System . out. println ( a2[ 2 ] ) ;
System . out. println ( a3[ 2 ] ) ;
System . out. println ( a4[ 2 ] ) ;
System . out. println ( a5[ 2 ] ) ;
System . out. println ( a6[ 2 ] ) ;
System . out. println ( a7[ 2 ] ) ;
System . out. println ( a8[ 2 ] ) ;
System . out. println ( "\0" ) ;
}
6 数组的数据类型与长度
@Test
public void test ( ) {
String [ ] arr0 = new String [ 3 ] ;
arr0[ 0 ] = "我" ;
arr0[ 1 ] = "爱" ;
arr0[ 2 ] = "你" ;
System . out. println ( arr0[ 0 ] ) ;
System . out. println ( arr0[ 1 ] ) ;
System . out. println ( arr0[ 2 ] ) ;
arr0 = new String [ 5 ] ;
System . out. println ( arr0[ 0 ] ) ;
System . out. println ( arr0[ 1 ] ) ;
System . out. println ( arr0[ 2 ] ) ;
}
7 数组的遍历
@Test
public void test01 ( ) {
String [ ] arr0 = new String [ 3 ] ;
arr0[ 0 ] = "我" ;
arr0[ 1 ] = "爱" ;
arr0[ 2 ] = "你" ;
System . out. println ( arr0[ 0 ] ) ;
System . out. println ( arr0[ 1 ] ) ;
System . out. println ( arr0[ 2 ] ) ;
}
@Test
public void test02 ( ) {
String [ ] arr0 = new String [ 3 ] ;
arr0[ 0 ] = "我" ;
arr0[ 1 ] = "爱" ;
arr0[ 2 ] = "你" ;
for ( int i = 0 ; i < 3 ; i++ ) {
System . out. println ( arr0[ i] ) ;
}
}
@Test
public void test10 ( ) {
String [ ] a = new String [ 3 ] ;
a[ 0 ] = "我" ;
a[ 1 ] = "爱" ;
a[ 2 ] = "你" ;
System . out. println ( "数组a的长度 >>> " + a. length) ;
}
@Test
public void test11 ( ) {
String [ ] arr0 = new String [ 3 ] ;
arr0[ 0 ] = "我" ;
arr0[ 1 ] = "爱" ;
arr0[ 2 ] = "你" ;
for ( int i = 0 ; i < arr0. length; i++ ) {
System . out. println ( arr0[ i] ) ;
}
}
8 Arrays.toString
import java. util. Arrays ;
@Test
public void test01 ( ) {
String [ ] arr0 = new String [ 3 ] ;
arr0[ 0 ] = "我" ;
arr0[ 1 ] = "爱" ;
arr0[ 2 ] = "你" ;
System . out. println ( Arrays . toString ( arr0) ) ;
}
@Test
public void test02 ( ) {
String [ ] a = { "我" , "爱" , "你" } ;
String b = Arrays . toString ( a) ;
System . out. println ( b) ;
}
9 for循环实现Arrays.toString
@Test
public void test ( ) {
String [ ] arr0 = new String [ 3 ] ;
arr0[ 0 ] = "我" ;
arr0[ 1 ] = "爱" ;
arr0[ 2 ] = "你" ;
System . out. println ( Arrays . toString ( arr0) ) ;
System . out. print ( "[" ) ;
for ( int i = 0 ; i < arr0. length; i++ ) {
if ( i != arr0. length - 1 ) {
System . out. print ( arr0[ i] + ", " ) ;
} else {
System . out. print ( arr0[ i] ) ;
}
}
System . out. println ( "]" ) ;
}
10 foreach遍历数组
@Test
public void test ( ) {
String [ ] array = { "我" , "爱" , "你" } ;
for ( String string : array) {
System . out. println ( string) ;
}
}
11 数组合并
@Test
public void test01 ( ) {
int [ ] arr0 = { 0 , 2 , 4 , 6 , 8 } ;
int [ ] arr1 = { 1 , 3 , 5 , 7 , 9 } ;
int [ ] arr2 = new int [ arr0. length + arr1. length] ;
for ( int i = 0 ; i < arr0. length; i++ ) {
arr2[ i] = arr0[ i] ;
}
for ( int i = 0 ; i < arr1. length; i++ ) {
arr2[ arr0. length + i] = arr1[ i] ;
}
System . out. println ( Arrays . toString ( arr2) ) ;
}
@Test
public void test02 ( ) {
int [ ] arr0 = { 0 , 2 , 4 , 6 , 8 } ;
int [ ] arr1 = { 1 , 3 , 5 , 7 , 9 } ;
int [ ] arr2 = new int [ arr0. length + arr1. length] ;
for ( int i = 0 ; i < arr2. length; i++ ) {
if ( i < arr0. length) {
arr2[ i] = arr0[ i] ;
} else {
arr2[ i] = arr1[ i - arr0. length] ;
}
}
System . out. println ( Arrays . toString ( arr2) ) ;
}
12 数组依次合并
@Test
public void test ( ) {
int [ ] arr0 = { 0 , 2 , 4 , 6 , 8 } ;
int [ ] arr1 = { 1 , 3 , 5 , 7 , 9 } ;
int [ ] arr2 = new int [ arr0. length + arr1. length] ;
for ( int i = 0 ; i < arr2. length; i++ ) {
if ( i < arr0. length) {
arr2[ i] = arr0[ i] ;
} else {
arr2[ i] = arr1[ i - arr0. length] ;
}
}
System . out. println ( Arrays . toString ( arr2) ) ;
}
13 长度不一致的数组依次合并
@Test
public void test ( ) {
int [ ] arr0 = { 0 , 2 } ;
int [ ] arr1 = { 1 , 3 , 5 , 7 , 9 } ;
int [ ] arr2 = new int [ arr0. length + arr1. length] ;
int max = arr1. length > arr0. length ? arr1. length : arr0. length;
int min = arr1. length < arr0. length ? arr1. length : arr0. length;
int [ ] maxArray = arr0. length > arr1. length ? arr0 : arr1;
for ( int i = 0 ; i < max; i++ ) {
if ( i < min) {
arr2[ 2 * i] = arr0[ i] ;
arr2[ 2 * i + 1 ] = arr1[ i] ;
} else {
arr2[ i + min] = maxArray[ i] ;
}
}
System . out. println ( Arrays . toString ( arr2) ) ;
}