Java學習筆記-數組

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

          Java數組的相關操作

          1> 在Java中所有的數組都有一個缺省的屬性length,用于獲取數組元素的個數。
          2> 數組的復制: System.arraycopy()。
          3> 數組的排序: Arrays.sort()。
          4> 在已排序的數組中查找某個元素:Arrays.binarySearch()。
          具體的看看下面的2個例子:
          code1:
          class ArrayTest
          {
          ?public static void main(String[] args)
          ?{
          ? /*數組的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]);
          ? }
          ? */
          ? //引用類型的數組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數組的第二個點的坐標,
          ? *當我們打印pts1數組的第一個點的坐標時,它的坐標點已經被修改為(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[]排序要求實現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;
          ?}
          }

          主站蜘蛛池模板: 平江县| 谢通门县| 五河县| 郴州市| 黎川县| 西青区| 罗江县| 岳西县| 龙门县| 乌恰县| 茂名市| 墨竹工卡县| 双柏县| 桃园县| 兴城市| 建宁县| 闽清县| 兰溪市| 宜君县| 炎陵县| 黄陵县| 博白县| 鹤峰县| 郸城县| 诏安县| 饶河县| 绥中县| 台江县| 桐城市| 天津市| 栖霞市| 依安县| 衡山县| 安达市| 荥经县| 大同市| 额尔古纳市| 绵竹市| 晴隆县| 八宿县| 扶风县|