Java學(xué)習(xí)筆記-數(shù)組

          Posted on 2006-06-27 17:22 多力宇揚(yáng) 閱讀(187) 評論(0)  編輯  收藏 所屬分類: Core Java

          Java數(shù)組的相關(guān)操作

          1> 在Java中所有的數(shù)組都有一個缺省的屬性length,用于獲取數(shù)組元素的個數(shù)。
          2> 數(shù)組的復(fù)制: 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);
          ? }
          ? /*
          ? *因?yàn)橐妙愋蛡鬟f的是引用的拷貝,所以我們修改pts2數(shù)組的第二個點(diǎn)的坐標(biāo),
          ? *當(dāng)我們打印pts1數(shù)組的第一個點(diǎn)的坐標(biāo)時,它的坐標(biāo)點(diǎn)已經(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[]排序要求實(shí)現(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;
          ?}
          }

          主站蜘蛛池模板: 西吉县| 通化市| 永德县| 朔州市| 旬阳县| 滕州市| 竹山县| 张家界市| 黄石市| 六枝特区| 望城县| 余江县| 紫云| 桑日县| 平潭县| 敦煌市| 桃江县| 循化| 外汇| 平湖市| 仪陇县| 满洲里市| 会同县| 北川| 台安县| 泰宁县| 重庆市| 宣威市| 石家庄市| 庆安县| 石狮市| 金溪县| 武宣县| 浦县| 北海市| 南阳市| 壶关县| 且末县| 南溪县| 安达市| 梁河县|