<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    工作小驛

    Ninja!

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      103 Posts :: 0 Stories :: 36 Comments :: 0 Trackbacks
    1.關(guān)于數(shù)組的特點(diǎn)

    1)在Java中,無(wú)論使用數(shù)組或容器,都有邊界檢查。如果越界操作就會(huì)得到一個(gè)RuntimeException異常。

    2)數(shù)組只能保存特定類型。數(shù)組可以保存基本類型,容器則不能。容器不以具體的類型來(lái)處理對(duì)象,它們將所有對(duì)象都按Object類型處理。

    3)容器類只能保存對(duì)象的引用。而數(shù)組既可以創(chuàng)建為直接保存基本類型,也可以保存對(duì)象的引用。在容器中可以使用包裝類,如Integer、Double等來(lái)實(shí)現(xiàn)保存基本數(shù)據(jù)類型值。

    4)對(duì)象數(shù)組和基本類型數(shù)組在使用上幾乎是相同的;唯一的區(qū)別是對(duì)象數(shù)組保存的是引用,基本類型數(shù)組保存基本類型的值。

    2.關(guān)于數(shù)組定義

    1)數(shù)組在定義時(shí),不能分配空間。只有定義完后,可以給數(shù)組分配空間。

    int num[];

    num=new int[3];



    int num[]=new int[3];

    注意

    int [] num=new int[]{1,2,3}; //ok

    int [] num=new int[3]{1,2,3}; //error;

    2)可以這樣定義二維數(shù)組。

    int [][] num;

    //or

    num=new int[3][];

    num[0]=new int[5];

    num[1]=new int[3];

    num[2]=new int[2];

    3)二維數(shù)組賦初值。


    int [][] num=new int[][]{1,2,3,4,5,5}; //error
    int [][] num=new int[][]{{1,2,3},{4,5,5}}; //ok
    int [][] num=new int[2][]{{1,2,3},{4,5,5}}; //error
    int [][] num={{1,2,3},{4,5,6}}; //ok


    3.關(guān)于數(shù)組初始化

    對(duì)象數(shù)組在創(chuàng)建之初會(huì)自動(dòng)初始化成null,由原始數(shù)據(jù)類型構(gòu)成的數(shù)組會(huì)自動(dòng)初始化成零(針對(duì)數(shù)值類型),(Char)0 (針對(duì)字符類型)或者false (針對(duì)布爾類型)。

    4.?dāng)?shù)組有關(guān)引用的問(wèn)題

    int[] a1 = { 1, 2, 3, 4, 5 };

    int[] a2;

    a2 = a1;//這里只是復(fù)制了一個(gè)引用

    看以下代碼:


    public class Arrays {
    public static void main(String[] args) {
    int[] a1 = { 1, 2, 3, 4, 5 };
    for (int i = 0; i < a1.length; i++)
    System.out.println("a1[" + i + "] = " + a1[i]);
    int[] a2;
    a2 = a1;
    for (int i = 0; i < a2.length; i++)
    a2[i]++;
    System.out.println("-----after change a2------");
    for (int i = 0; i < a1.length; i++)
    System.out.println("a1[" + i + "] = " + a1[i]);
    System.out.println("-----after change a2[0]------");
    a2[0] = 333;
    System.out.println("a2[0]=" + a2[0]);
    System.out.println("a1[0]=" + a1[0]);
    System.out.println("----- a2------");
    for (int i = 0; i < a2.length; i++)
    System.out.println("a2[" + i + "] = " + a2[i]);
    }
    }


    結(jié)果:

    a1[0] = 1

    a1[1] = 2

    a1[2] = 3

    a1[3] = 4

    a1[4] = 5

    -----after change a2------

    a1[0] = 2

    a1[1] = 3

    a1[2] = 4

    a1[3] = 5

    a1[4] = 6

    -----after change a2[0]------

    a2[0]=333

    a1[0]=333

    ----- a2------

    a2[0] = 333

    a2[1] = 3

    a2[2] = 4

    a2[3] = 5

    a2[4] = 6

    數(shù)組a1和a2始終在操作同一個(gè)對(duì)象。

    5.關(guān)于數(shù)組的相關(guān)操作

    1)在Java中,所有的數(shù)組都有一個(gè)缺省的屬性length,用于獲取數(shù)組中元素的個(gè)數(shù)。

    2)數(shù)組的復(fù)制:System.arraycopy()。

    3)數(shù)組的排序:Arrays.sort()。

    4)在已排序的數(shù)組中查找某個(gè)元素:Arrays.binarySearch()。

    6.關(guān)于數(shù)組的排序操作

    1)對(duì)象數(shù)組排序,必須實(shí)現(xiàn)Comparable接口。


    import java.util.Arrays;
    class Student implements Comparable {
    int num;
    String name;

    Student(int num, String name) {
    this.num = num;
    this.name = name;
    }

    public String toString()// 重寫toString()方法,以便main:System.out.println(ss[i]);
    {
    return "number=" + num + "," + "name=" + name;
    }

    public int compareTo(Object o) {
    Student s = (Student) o;
    return num > s.num ? 1 : (num == s.num ? 0 : -1);
    }
    }

    class ArrayTest {
    public static void main(String[] args) {
    Student[] ss = new Student[] { new Student(1, "zhangsan"),
    new Student(2, "lisi"), new Student(3, "wangwu") };
    Arrays.sort(ss);
    for (int i = 0; i < ss.length; i++) {
    System.out.println(ss[i]);
    }
    }
    }


    結(jié)果:

    number=1,name=zhangsan

    number=2,name=lisi

    number=3,name=wangwu

    2)以num為第一關(guān)鍵字,name為第二關(guān)鍵字排序


    import java.util.Arrays;

    class Student implements Comparable {
    int num;
    String name;

    Student(int num, String name) {
    this.num = num;
    this.name = name;
    }

    public String toString() {
    return "number=" + num + "," + "name=" + name;
    }

    public int compareTo(Object o) {
    Student s = (Student) o;
    int result = num > s.num ? 1 : (num == s.num ? 0 : -1);
    if (0 == result) {
    result = name.compareTo(s.name);
    }
    return result;
    }
    }

    class ArrayTest {
    public static void main(String[] args) {
    Student[] ss = new Student[] { new Student(1, "zhangsan"),
    new Student(2, "lisi"), new Student(3, "wangwu"),
    new Student(3, "mybole") };
    Arrays.sort(ss);
    for (int i = 0; i < ss.length; i++) {
    System.out.println(ss[i]);
    }
    }
    }


    結(jié)果:

    number=1,name=zhangsan

    number=2,name=lisi

    number=3,name=mybole

    number=3,name=wangwu

    7.關(guān)于java.util.Arrays

    1)java.util.Class Arrays’s architecture

    java.lang.Object

    |

    +--java.util.Arrays

    2)說(shuō)明

    這個(gè)類提供的基本上都是靜態(tài)方法,用戶進(jìn)行數(shù)組操作,binarySearch():數(shù)組中特定元素的尋找,equals():比較兩個(gè)數(shù)組是否相等(在相同位置上的元素是否相等),fill():數(shù)組填充,sort():數(shù)組排序
    posted on 2007-09-20 15:56 王君 閱讀(469) 評(píng)論(0)  編輯  收藏 所屬分類: J2SE
    主站蜘蛛池模板: 午夜亚洲AV日韩AV无码大全| 羞羞视频免费网站在线看| 久久久久无码精品亚洲日韩| 日韩成人免费在线| 国产高清免费视频| 久久er国产精品免费观看2| 粉色视频在线观看www免费| 亚洲国产一区在线观看| 亚洲激情在线视频| 亚洲中文字幕无码中文字在线| 日本高清免费网站| 成年男女免费视频网站| 免费观看美女用震蛋喷水的视频| a级毛片在线免费| 国产成人高清精品免费观看| 青青免费在线视频| 国产精品久久久久久亚洲影视 | 蜜臀亚洲AV无码精品国产午夜.| 亚洲成aⅴ人在线观看| 亚洲国产精品不卡在线电影| 亚洲无线码一区二区三区| 亚洲国产精品激情在线观看| 国产性生交xxxxx免费| 永久免费AV无码网站在线观看| 在线看片免费不卡人成视频| 亚洲一级毛片免费观看| 无码国产精品一区二区免费模式| 成人av片无码免费天天看| h视频在线免费观看| a高清免费毛片久久| 久久精品无码专区免费| 九九热久久免费视频| 成人国产精品免费视频| a级成人毛片免费图片| 成人无码WWW免费视频| 日本亚洲欧洲免费天堂午夜看片女人员| 三上悠亚电影全集免费 | 最新国产AV无码专区亚洲| 久久亚洲国产精品五月天婷| 久久亚洲av无码精品浪潮| 亚洲国产一成人久久精品|