Java學習筆記-數(shù)組

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

          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;
          ?}
          }

          主站蜘蛛池模板: 镇沅| 游戏| 邛崃市| 安岳县| 乐都县| 毕节市| 漯河市| 滁州市| 黄龙县| 尚义县| 隆尧县| 沽源县| 永川市| 泸州市| 阳朔县| 西华县| 东辽县| 鄂尔多斯市| 仁怀市| 鹤峰县| 集安市| 五莲县| 涿州市| 获嘉县| 邯郸县| 奉新县| 宝鸡市| 鸡泽县| 嵊州市| 中方县| 乌拉特中旗| 达日县| 福鼎市| 海原县| 乡宁县| 奉化市| 连江县| 东山县| 永嘉县| 巴林右旗| 尚志市|