1. 实现数组排序
Java类库对数组排序的操作:java.util.Arrays.sort(arrayName);
package Array;
/**
* Author:weiwei
* description:数组排序
* Creat:2019/3/22
**/
public class Testsort {
public static void main(String[] args) {
int [] intData = new int[]{1,2,3,4,5};
char [] charData = new char[]{'a','b','c','d','e'};
java.util.Arrays.sort(intData);
java.util.Arrays.sort(charData);
printArray(intData);
printArray(charData);
}
public static void printArray(int [] temp){
for(int i = 0;i<temp.length;i++){
System.out.println(temp[i]);
}
System.out.println();
}
//方法重载
public static void printArray(char [] temp){
for(int i =0;i<temp.length;i++){
System.out.println(temp[i]);
}
System.out.println();
}
}
只要是基本数据类型的数组,sort方法都可以实现排序处理(升序),内部使用双轴快速排序
2. 实现数组拷贝
数组拷贝:指的是将一个数组的部分内容用另一个数组的一部分内容来替换掉(必须是连续的)
方法(1)Java类库对数组拷贝的操作:System.array.copy(源数组名称,源数组开始点,目标数组名称,目标数组开始点,拷贝长度);
package Array;
/**
* Author:weiwei
* description:数组拷贝
* Creat:2019/3/22
**/
public class Testcopy {
public static void main(String[] args) {
int [] dataA = new int []{1,2,3,4,5,6,7,8,9};
int [] dataB = new int []{11,22,33,44,55,66,77,88,99};
System.arraycopy(dataB,3,dataA,2,4);
printArray(dataA);
}
public static void printArray(int[] temp){
for(int i =0;i<temp.length;i++){
System.out.println(temp[i]);
}
System.out.println();
}
}
运行结果:1,2,44,55,66,77,7,8,9
方法(2) 数组拷贝:java.util.Arrays.copyof(源数组名称,新数组长度);
package Array;
import java.util.Arrays;
/**
* Author:weiwei
* description:数组拷贝
* Creat:2019/3/22
**/
public class Testcopyof {
public static void main(String[] args) {
int [] original = new int[] {1,3,5,7,9};
int [] result = Arrays.copyOf(original,10);
for(int temp : result){
System.out.println(temp);
}
}
}
运行结果:1,3,5,7,9,0,0,0,0,0
自动填充0,是数组达到定义的长度,动态数组就用此方法来扩容
3. 对象数组
上面定义的数组都是基本数据类型的数组,对象数组往往是以引用数据类型为主定义的,例如类,接口
3.1 动态初始化
语法:类名称 [] 对象数组名称 = new 类名称[长度];
- 对象数组的动态初始化
package Array;
/**
* Author:weiwei
* description:对象数组动态初始化
* Creat:2019/3/22
**/
class Person{
private String name;
private int age;
public Person(String name,int age){
this.name=name;
this.age=age;
}
public void getInfo(){
System.out.println("姓名"+this.name+",年龄:"+this.age);
}
}
public class TestObject1 {
public static void main(String[] args) {
Person[] per = new Person[3];//数组动态初始化,每个元素都是其对应数据类型的默认值
per[0] = new Person("zhangsan",22);
per[1] = new Person("lisi",23);
per[2] = new Person("wangwu",18);
for(int i = 0;i< per.length;i++){
per[i].getInfo();
}
}
}
3.2 静态初始化
package Array;
/**
* Author:weiwei
* description:静态数组初始化
* Creat:2019/3/22
**/
class Person{
private String name;
private int age;
public Person(String name,int age){
this.name=name;
this.age=age;
}
public void getInfo(){
System.out.println("姓名"+this.name+",年龄:"+this.age);
}
}
public class TestObject2 {
public static void main(String[] args) {
Person[] per = new Person[]{
new Person("zhangsan", 22),
new Person("lisi", 23),
new Person("wangwu", 18),
};
//对象数组静态数组初始化
for (int i = 0; i < per.length; i++) {
per[i].getInfo();
}
}
}