亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Java基礎--容器(2)

2019-11-14 11:25:12
字體:
來源:轉載
供稿:網友
1.List接口?List接口是Collection的子接口,實現List接口的容器類中的元素是有順序的,而且可以重復。List容器中的元素都對應一個整數的序號記載其在容器中的位置,可以根據序號存取容器中的元素。?J2SDK所提供的List容器類有ArrayList,LinkedList等。?Object get(int index);?                                返回Index位置的元素Object set(int index,object element);    把Index位置的元素設置成element,返回index?void add (int index,object element);      添加,把元素往后擠一格?Object remove(object o);?                         去除int indexOf(Object o);?                               返回o出現的位置int lastIndexOf(Object o);?例:
public class TestList {    public static void main(String agrs[]) {        List l1 = new LinkedList();        for (int i = 0; i <= 5; i++) {            l1.add("a" + i);        }        System.out.PRintln(l1);        l1.add(3, "a100");        System.out.println(l1);        l1.set(6, "a200");        System.out.println(l1);        System.out.print((String) l1.get(2) + " ");        System.out.println(l1.indexOf("a3"));        l1.remove(1);        System.out.println(l1);    }}

結果是:

[a0, a1, a2, a3, a4, a5]

[a0, a1, a2, a100, a3, a4, a5][a0, a1, a2, a100, a3, a4, a200]a2   4[a0, a2, a100, a3, a4, a200]?2.List常用算法?java.util.Collections提供了一些靜態方法實現了基于List容器的一些常用算法。?void sort(List)                             對List容器內的元素排序?void shuffle(List)                        對List容器內的對象進行隨機排序?void reverse(List)                      對List容器內的對象進行逆序排序?void fill(List,Object)                   用一個特定的對象重寫整個List容器?void copy(List dest,List src)    將src List容器內容拷貝到dest List容器?int binarySearch(List,Object)  對于順序的List容器,采用折半查找的方法查找特定對象?算法舉例:
public class TestList {    public static void main(String agrs[]) {        List l1 = new LinkedList();        List l2 = new LinkedList();        for (int i = 0; i <= 9; i++) {            l1.add("a" + i);        }        System.out.println(l1);        Collections.shuffle(l1); //隨機排序        System.out.println(l1);        Collections.reverse(l1); //逆序        System.out.println(l1);        Collections.sort(l1); //排序        System.out.println(l1);        System.out.println(Collections.binarySearch(l1, "a5")); //折半查找    }}結果是:[a0, a1, a2, a3, a4, a5, a6, a7, a8, a9][a6, a8, a9, a1, a2, a5, a0, a3, a4, a7][a7, a4, a3, a0, a5, a2, a1, a9, a8, a6][a0, a1, a2, a3, a4, a5, a6, a7, a8, a9]53.Comparable接口?所有可以“排序“的類都實現了java.lang.Comparable接口,comparable接口中只有一個方法public int compareTo(Object obj);該方法:?返回0表示this==obj,正數this>obj,負數this實現了Comparable接口的類通常實現comparaTo方法從而確定該類對象的排序方式。?將上述的Name類改寫:class Name implements Comparable加入
public int compareTo(Object o) {Name n = (Name)o;int lastCmp =c.compareTo(n.c);return(lastCmp!=0 ? lastCmp :s.compareTo(n.s));}?然后運行:
public class TestComparable {    public static void main(String agrs[]) {        List l1 = new LinkedList();        l1.add(new Name("Karl", "M"));        l1.add(new Name("Steven", "Lee"));        l1.add(new Name("John", "O"));        l1.add(new Name("Tom", "M"));        System.out.println(l1);        Collections.sort(l1);        System.out.println(l1);    }}結果是:[Karl M, Steven Lee, John O, Tom M]

[Steven Lee, Karl M, Tom M, John O]

?4.如何選擇數據結構?衡量標準:讀的效率和改的效率?

Array讀快改慢,Linked改快讀慢,Hash兩者之間?

5.Map接口?實現Map接口的類用來存儲 鍵—值 對。?Map接口的實現類有HashMap(哈希表)和TreeMap(二叉樹)等?。?二叉樹:在計算機科學中,二叉樹是每個節點最多有兩個子樹的樹結構。通常子樹被稱作左子樹(left subtree)和右子樹(right subtree)。二叉樹常被用于實現二叉查找樹和二叉堆。二叉樹的每個結點至多只有二棵子樹(不存在度大于2的結點)。二叉樹的子樹有左右之分,次序不能顛倒。二叉樹的第i層至多有2^{i-1}個結點;深度為k的二叉樹至多有2^k-1個結點;對任何一棵二叉樹T,如果其終端結點數為n_0,度為2的結點數為n_2,則n_0=n_2+1。一棵深度為k,且有2^k-1個節點稱之為滿二叉樹;深度為k,有n個節點的二叉樹,當且僅當其每一個節點都與深度為k的滿二叉樹中,序號為1至n的節點對應時,稱之為完全二叉樹。?哈希表:?散列表(Hash table,也叫哈希表),是根據關鍵碼值(Key value)而直接進行訪問的數據結構。也就是說,它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度。這個映射函數叫做散列函數,存放記錄的數組叫做散列表。給定表M,存在函數f(key),對任意給定的關鍵字值key,代入函數后若能得到包含該關鍵字的記錄在表中的地址,則稱表M為哈希(Hash)表,函數f(key)為哈希(Hash) 函數。Map類中存儲的鍵—值對通過鍵來標識,所以鍵值不能重復。?Object put(Object key,Object value);       //放入一對東西?,返回原key的valueObject get(Object key);                              //通過key找到value?Object remove(Object key);?                      //去掉key對應的value,key隨之也去掉boolean containsKey(object key);?           //是不是包含keyboolean containsKey(object value);int size();                                                       多少對boolean isEmpty()void putAll?(Map t);                                       把另一個Map所有值加進來?void clear();??例:
public class TestMap {    public static void main(String agrs[]) {        Map m1 = new HashMap();        Map m2 = new TreeMap();        m1.put("one", new Integer(1));        m1.put("two", new Integer(2));        m1.put("three", new Integer(3));        m2.put("A", new Integer(1));        m2.put("B", new Integer(2));        System.out.println(m1.size());        System.out.println(m1.containsKey("one"));        System.out.println(m2.containsValue(new Integer(1)));        if (m1.containsKey("two")) {            int i = ((Integer) m1.get("two")).intValue();//get two返回的是object,強制轉換成integer,然后獲得int的值            System.out.println(i);        }        Map m3 = new HashMap(m1);        m3.putAll(m2);        System.out.println(m3);    }}結果是:3truetrue2{A=1, B=2, two=2, three=3, one=1}?6.Auto-boxing/unboxing?在合適的時機自動打包,解包,自動將基礎類型轉換成對象,自動將對象轉換成基礎類型?
public class TestMap {    public static void main(String agrs[]) {        Map m1 = new HashMap();        Map m2 = new TreeMap();        m1.put("one", 1);         //打包        m1.put("two", 2);        m1.put("three", 3);        m2.put("A", 1);        m2.put("B", 2);        System.out.println(m1.size());        System.out.println(m1.containsKey("one"));        System.out.println(m2.containsValue(1));        if (m1.containsKey("two")) {            int i = ((Integer) m1.get("two"));   //Integer是不能去掉的,對象轉換成Integer后,才能自動轉換成int類型            System.out.println(i);        }        Map m3 = new HashMap(m1);        m3.putAll(m2);        System.out.println(m3);    }}

將TestMap加以修改,結果相同

 7.泛型?JDK1.4以前類型不明確:裝入集合的類型都被當成Object對待從而失去自己的實際類型。解決辦法:在定義集合的時候同時定義集合中對象的類型。?示例:BasicGeneric,可以在定義Collection時定義,也可以在循環時用Iterator指定?舉例:
public class BasicGeneric {    public static void main(String agrs[]) {        List c = new ArrayList();        c.add("aaa");        c.add("bbb");        c.add("ccc");        for (int i = 0; i < c.size(); i++) {            String s = c.get(i).toString();            System.out.println(s);        }        Collection c2 = new HashSet();        c2.add("AAA");        c2.add("BBB");        c2.add("CCC");        for (Iterator it = c2.iterator(); it.hasNext();){            String s = it.next().toString();            System.out.println(s);        }    }}
public class MyName implements Comparable<MyName>{//對MyName類用泛型實現comparable    int age;    public int compareTo(MyName nm) {        if(this.age > nm.age) return 1;        else if(this.age < nm.age) return -1;        else return 0;    }}結果是:aaa   bbb  ccc  AAA  CCC  BBB泛型和打包綜合利用:?
public class TestMap {    public static void main(String agrs[]) {        Map m1 = new HashMap();        m1.put("one", 1);        m1.put("two", 2);        m1.put("three", 3);        System.out.println(m1.size());        System.out.println(m1.containsKey("one"));        if (m1.containsKey("two")) {            int i = (int) m1.get("two");            System.out.println(i);        }    }}結果是:3true2?另一個例子:?
public class TestArgsWords {    private static final int ONE = 1;    public static void main(String args[]) {        Map m = new HashMap();        for (int i = 0; i < args.length; i++) {            if (!m.containsKey(args[i])) {                m.put(args[i], ONE);            } else {                int freq = (int) m.get(args[i]);                m.put(args[i], freq + 1);            }        }        System.out.println                (m.size() + " distinct words detected:");        System.out.println(m);    }}結果:0  distinct words detected:?{}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
26uuu亚洲国产精品| 亚洲综合成人婷婷小说| 综合国产在线视频| 成人免费视频在线观看超级碰| 中文字幕亚洲国产| 国产精品国产三级国产aⅴ浪潮| 久久久99久久精品女同性| 2018中文字幕一区二区三区| 最近2019中文免费高清视频观看www99| 韩剧1988免费观看全集| 亚洲欧洲视频在线| 国产精品专区一| 欧美精品在线视频观看| 久久精品久久久久| 欧美一级免费看| 日韩成人中文电影| 亚洲人线精品午夜| 日本免费在线精品| 97精品国产91久久久久久| 情事1991在线| 国产精品综合网站| 亚洲欧美日韩国产中文专区| 亚洲一区久久久| 精品成人69xx.xyz| 亚洲精品理论电影| 久久色在线播放| 久久欧美在线电影| 精品久久香蕉国产线看观看亚洲| 国产精品久久久久久五月尺| 米奇精品一区二区三区在线观看| 亚洲第一区在线| 亚洲人成啪啪网站| 欧美大码xxxx| 国产精品香蕉在线观看| 久久99视频精品| 国产精品狼人色视频一区| 狠狠色狠狠色综合日日五| 亚洲欧美激情在线视频| 亚洲大胆美女视频| 成人激情视频在线| 亚洲精品www| 亚洲欧美在线免费观看| 中文字幕免费精品一区高清| 亚洲老头同性xxxxx| 国产精品h在线观看| 国产国语videosex另类| 日本中文字幕不卡免费| 亚洲精品国产综合久久| 亚洲精品国产福利| 精品亚洲va在线va天堂资源站| 国产精品白嫩初高中害羞小美女| 热99精品只有里视频精品| 国产精品96久久久久久| 91沈先生作品| 国产精品444| 国产精品青青在线观看爽香蕉| 久久久日本电影| 九九精品在线播放| 日韩网站免费观看| 久久精品中文字幕一区| 亚洲无线码在线一区观看| 日韩美女在线观看一区| 亚洲欧洲一区二区三区在线观看| 一本一本久久a久久精品牛牛影视| 国产精品久久久| 欧美视频在线观看免费网址| 亚洲国产精品久久久久| 国产精品福利在线观看网址| 欧美多人爱爱视频网站| 国产精品一区二区久久久| 最新69国产成人精品视频免费| 国产精品日韩av| 日韩中文字幕在线视频播放| 亚洲天堂av在线免费| 欧美性猛交xxxx富婆弯腰| 亚洲视频777| 日韩av不卡电影| 91高清视频免费观看| 欧美激情乱人伦一区| 久热99视频在线观看| 国产欧美日韩综合精品| 亚洲大胆人体视频| 日本精品va在线观看| 日韩欧美一区二区在线| 亚洲精品小视频| 国产成人综合av| 性欧美长视频免费观看不卡| 国产精品一区二区久久国产| 国产69精品久久久久99| 不用播放器成人网| 国产一区二区三区在线免费观看| 成人网在线观看| 国产精品久久在线观看| 亚洲成色777777在线观看影院| 中国日韩欧美久久久久久久久| 日韩欧美在线一区| 久久精品国产亚洲一区二区| 97免费在线视频| 91久久国产综合久久91精品网站| 日韩成人网免费视频| 热re99久久精品国产66热| 国产精品av免费在线观看| 国产精品日韩在线| 国产精品一区二区三区毛片淫片| 中文字幕国产亚洲2019| 亚洲高清久久久久久| 亚洲网站视频福利| 国内外成人免费激情在线视频| 欧美日韩国产第一页| 国产精品久久久久久av福利软件| 亚洲3p在线观看| 日韩电影在线观看永久视频免费网站| 热久久99这里有精品| 91亚洲永久免费精品| 欧美成人精品激情在线观看| 日本精品一区二区三区在线| 日韩美女在线观看一区| 国产欧美精品xxxx另类| 青青草精品毛片| 少妇精69xxtheporn| 国产欧美va欧美va香蕉在线| 欧美日韩999| 久久久在线免费观看| 亚洲新声在线观看| 国产日产亚洲精品| 欧美国产日韩一区二区在线观看| 精品国产网站地址| 日韩中文第一页| 成人a在线观看| 一区二区欧美在线| 日产日韩在线亚洲欧美| 国产精品成人久久久久| 亚洲国产精品一区二区三区| 91精品久久久久久久久中文字幕| 福利一区视频在线观看| 91免费在线视频网站| 中文字幕不卡在线视频极品| 精品国产一区二区三区在线观看| 欧美极品第一页| 欧美裸体xxxx极品少妇| 亚洲国产精品一区二区久| 久久人人97超碰精品888| 欧美黑人巨大xxx极品| 亚洲人成五月天| 国产视频精品在线| 国产精品激情av电影在线观看| 成人精品在线观看| 欧美专区中文字幕| 色噜噜久久综合伊人一本| 亚洲人成网站在线播| 欧美视频在线免费看| 国产精品成熟老女人| 欧美高清视频免费观看| 欧美裸体xxxxx| 国产视频丨精品|在线观看| 日韩高清电影免费观看完整版| 欧美日本亚洲视频| 亚洲最大福利视频网站| 亚洲欧美综合精品久久成人| 97超级碰在线看视频免费在线看| 久久久久久久久久婷婷| 亚洲电影免费观看高清完整版| 欧美成人sm免费视频| 亚洲欧美色婷婷|