Java數(shù)組的相關操作
1> 在Java中所有的數(shù)組都有一個缺省的屬性length,用于獲取數(shù)組元素的個數(shù)。
2> 數(shù)組的復制: System.arraycopy()。
3> 數(shù)組的排序: Arrays.sort()。
4> 在已排序的數(shù)組中查找某個元素:Arrays.binarySearch()。
具體的看看下面的2個例子:
code1:
class ArrayTest
{
?public static void main(String[] args)
?{
? /*數(shù)組的copy
? int[] num1=new int[]{1,2,3};
? int[] num2=new int[3];
? System.arraycopy(num1,0,num2,0,num1.length);
? for(int i=0;i<num2.length;i++)
? {
?? System.out.println(num2[i]);
? }
? */
? //引用類型的數(shù)組copy
? Point[] pts1=new Point[]{new Point(1,1),new Point(2,2),new Point(3,3)};
? Point[] pts2=new Point[3];
? System.arraycopy(pts1,0,pts2,0,pts1.length);
? for(int i=0;i<pts2.length;i++)
? {
?? System.out.println("x="+pts2[i].x+","+"y="+pts2[i].y);
? }
? /*
? *因為引用類型傳遞的是引用的拷貝,所以我們修改pts2數(shù)組的第二個點的坐標,
? *當我們打印pts1數(shù)組的第一個點的坐標時,它的坐標點已經(jīng)被修改為(5,5)了
? pts2[1].x=5;
? pts2[1].y=5;
? System.out.println("x="+pts1[1].x+","+"y="+pts1[1].y);
? */
?}
}
class Point
{
?int x, y;
?Point(int x,int y)
?{
? this.x=x;
? this.y=y;
?}
}
code2:
import java.util.*;
class TestArray
{
?public static void main(String[] args)
?{
? /*
? int[] num=new int[]{3,2,1};
? Arrays.sort(num);
? for(int i=0;i<num.length;i++)
? {
?? System.out.println(num[i]);
? }
? int index=Arrays.binarySearch(num,3);
? System.out.println("index="+index);
? System.out.println("Element="+num[index]);
? */
? Student[] ss=new Student[]{new Student("zhangshan",1),
??????????????????????????? new Student("lisi",2),
??????????????????????????? new Student("wangwu",3),
??????????????????????????? new Student("mybole",3)};
?? Arrays.sort(ss);
?? for(int i=0;i<ss.length;i++)
?? {
??? System.out.println(ss[i]);
?? }
?? int index=Arrays.binarySearch(ss,new Student("lisi",2));
?? System.out.println("name="+ss[index].name+","+"index="+index);
?}
}
class Student implements Comparable
{
?String name;
?int num;
?Student(String name,int num)
?{
? this.name=name;
? this.num=num;
?}
?public String toString()
?{
? return "name="+name+","+"number="+num;
?}
?public int compareTo(Object o)? //對于Object[]排序要求實現(xiàn)Comparable接口
?{
? Student s=(Student)o;
? //return num>s.num ? 1 :(num==s.num ? 0 : -1);
? int result=num>s.num ? 1 :(num==s.num ? 0 : -1);//按名字排序
? if(0==result)
? {
?? result=name.compareTo(s.name);
? }
? return result;
?}
}