九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
java集合框架
1.java集合框架概述
java SE包含了由一組類和接口組成的java集合框架(java Collection Framework,簡(jiǎn)稱JCF),其主要功能是用來將存儲(chǔ)的數(shù)據(jù)以某種結(jié)構(gòu)組織,并以特定的方式來訪問這些數(shù)據(jù),其目標(biāo)是提供一個(gè)處理對(duì)象集合的通用框架,減少程序員處理不同對(duì)象集合時(shí)的編碼量。
集合類中的一些區(qū)別,除了它們是否支持重復(fù)元素操作外,還包括元素是否有順序,以及是否允許添加null元素。java集合框架中根據(jù)這三個(gè)區(qū)別,將對(duì)象的存儲(chǔ)方式分為三種類型,分別是:
1.Set(集):對(duì)象容器中的對(duì)象沒有順序,且不能重復(fù)。
2.List(列表):對(duì)象容器中的對(duì)象按照索引順序排序,而且可以有重復(fù)的對(duì)象。
3.Map(映射):對(duì)象容器中的元素包含一對(duì)“鍵對(duì)象-值對(duì)象”映射,其中鍵對(duì)象不能重復(fù),值對(duì)象可以重復(fù)。
為支持對(duì)象的排序和遍歷訪問操作,java集合框架中又提供了幾個(gè)接口:
1.接口SortedSet為Set類型容器提供拍戲功能。
2.接口SortedMap為Map類型容器提供對(duì)鍵對(duì)象的排序。
3.接口Comparable和comparator用來實(shí)現(xiàn)集合中對(duì)象的排序。
2.Collection接口和Iterator接口
Collection接口中定義了Collection對(duì)象共有的一些基本方法
方法 描述
int size()返回當(dāng)前集合中包含的元素個(gè)數(shù)
isEmpyt()判斷集合中是否含有元素
boolean contains(Objact o)判斷集合中是否含有某一指定元素
add(Objact o)向集合中添加某一個(gè)元素
remove(Objact o)從集合中刪除某一元素
Iterator iterator()返回一個(gè)遍歷器,用來訪問集合中的各個(gè)元素
Iterator接口是一種用于遍歷集合的接口。
Iterator接口中的方法方法描述
hasNext()如果集合中還有更多元素,該方法返回true
next()返回集合中的下一個(gè)元素
remove()刪除Iterator返回的最后一個(gè)元素
1.List接口
List接口繼承自Collection接口,它有如下特點(diǎn):
1.List中的元素是有順序的。
2.List通常允許重復(fù)元素。
3.List的實(shí)現(xiàn)類通常支持null元素。
4.可以通過索引訪問List對(duì)象容器中的元素。
List接口最常用的實(shí)現(xiàn)類是ArrayList類和LinkedList類。
1).ArrayList
程序?qū)嵗?div style="height:15px;">
package lei;        import java.util.ArrayList;    import java.util.List;        public class Test {        public static void main(String[] args) {                      List list = new ArrayList<>();            list.add(1);            list.add("zhangsan");            list.add(false);            list.add('a');            list.add(0, "lisi");            list.add(1);            list.remove(1);            list.remove(2);            list.set(0, "wangwu");            for (int i = 0; i < list.size(); i++) {                System.out.println(list.get(i));            }        }    }
Object類定義的equals()方法只有在傳遞給該方法的對(duì)象與調(diào)用該方法的對(duì)象是同一對(duì)象的時(shí)候,才會(huì)返回true??梢酝ㄟ^重寫equals()方法來把具有相同狀態(tài)的兩個(gè)對(duì)象被看做是同一對(duì)象。
2).LinkedList
方法描述
void addFirst在鏈表開頭添加一個(gè)對(duì)象
void addLast在鏈表末尾添加一個(gè)對(duì)象
getFirst()返回鏈表中的第一個(gè)元素
getLast()返回鏈表中的最后一個(gè)元素
removeFirst()刪除鏈表中的第一個(gè)元素
removeLast()刪除鏈表中的最后一個(gè)元素
程序?qū)嵗?div style="height:15px;">
package lei;        import java.util.LinkedList;    import java.util.List;        public class Test2 {           public static void main(String[] args) {             LinkedList l=new LinkedList<>();            l.add("zhangsan");            l.add("lisi");            l.addFirst(1);            l.addLast(4);            System.out.println(l.getFirst());            System.out.println(l.getLast());            l.removeFirst();            l.removeLast();            for (int i = 0; i < l.size(); i++) {                System.out.println(l.get(i));                }            }    }
LinkedList與ArrayList的選擇
如果列表需要快速存取,但不經(jīng)常進(jìn)行元素的插入和刪除操作,那么選擇ArrayList會(huì)好一些;如果需要對(duì);列表進(jìn)行頻繁的插入和刪除操作,那么就應(yīng)該選擇LinkedList。
2.set接口
set接口繼承自Collectiion接口,同時(shí)也繼承了Collection接口的全部方法。set接口有以下特點(diǎn):
1.Set類型容器中不能包含重復(fù)元素。當(dāng)加入一個(gè)元素到容器中時(shí),要比較元素的內(nèi)容是否存在重復(fù)的,所以加入Set類型對(duì)象容器的對(duì)象必須重寫equals()方法。
2.元素能能有順序,也可能沒有順序。
3.因?yàn)樵乜赡軟]有順序,所以不能基于下標(biāo)訪問Set中費(fèi)元素。
實(shí)現(xiàn)Set接口最常用的是HashSet類和TreeSet類。
1).Hashset
Hashset類是基于哈希算法的Set接口實(shí)現(xiàn),它主要有如下幾個(gè)特點(diǎn):
1.當(dāng)遍歷Hashset時(shí),其中的元素是沒有順序的。
2.Hashset中不允許出現(xiàn)重復(fù)元素。這里的重復(fù)元素是指有相同的哈希碼,并且用equals()方法進(jìn)行比較時(shí),返回true的兩個(gè)對(duì)象。
3.允許包含null元素。
如果我們編寫的類重新定義了equals方法,那么這個(gè)類也必須重新定義hashCode()方法,并且保證當(dāng)兩個(gè)對(duì)象用equals方法比較結(jié)果為true時(shí),這兩個(gè)對(duì)象的hashCode()方法的返回值相等。
程序?qū)嵗?div style="height:15px;">
package lei;        import java.util.HashSet;    import java.util.Set;        public class Test4 {           public static void main(String[] args) {            Set<String> set=new HashSet<String>();            set.add("zhangsan");            set.add("lisi");            for(String s:set){                System.out.println(s);            }        }    }
2).TreeSet
TreeSet類不僅實(shí)現(xiàn)類Set接口,還實(shí)現(xiàn)了SortedSet接口,從而保證集合中的對(duì)象按照一定的順序排序。當(dāng)向TreeSet集合中添加一個(gè)對(duì)象時(shí),會(huì)把它插入到有序的對(duì)象序列中,但是這種排序并不是按照對(duì)象添加的順序排序,而是按照一定的算法來排序。
TreeSet使用元素的自然順序?qū)υ剡M(jìn)行排序,或者根據(jù)創(chuàng)建Set時(shí)提供的Comparator進(jìn)行排序。TreeSet支持自然排序和自定義排序兩種排序方式。
3.Map接口
Map(映射)接口是java集合框架中不同于Collection接口的另一個(gè)重要接口,它對(duì)應(yīng)的是在一種從鍵(Key)到值(Value)的對(duì)應(yīng)關(guān)系的集合。Map類型的對(duì)象容器里面保存著兩組對(duì)象,一組對(duì)象用于保存Map里的Key,另外一組用于保存Value。Key和Value可以升級(jí)任何引用類型的數(shù)據(jù)。Key不能重復(fù),但是Value可以重復(fù)。
1).HashMap
HashMap是基于哈希算法的Map接口的實(shí)現(xiàn)。HashMap將它的鍵保存在哈希表中進(jìn)行維護(hù),鍵是唯一的。但是,HashMap并不保證鍵以特定順序排列,特別是不保證順序永久不變。
HashMap類實(shí)現(xiàn)了Map接口,從而具有Map接口的所有方法。
package day1228;        import java.util.*;        public class HashMapDemo {        public static void main(String[] args) {            // 創(chuàng)建一個(gè)新的HashMap            Map<String, String> map = new HashMap<String, String>();            map.put("a1", "xiao");            map.put("b2", "xiaol");            map.put("a4", "xiaosd");            map.put("b1", "12a");            map.put("a3", "1");            // 使用iterator遍歷 鍵和值            System.out.println("之前的Map值是:");            Set<String> keys = map.keySet();            for (Iterator<String> i = keys.iterator(); i.hasNext();) {                String key = i.next();                String value = map.get(key);                System.out.println(key + "=" + value);            }            // 刪除鍵為"a4"的值            System.out.println("\n刪除鍵值為a4的元素");            map.remove("a4");            // //使用iterator遍歷 鍵和值            System.out.println("\n之后的Map值:");            keys = map.keySet();            for (Iterator<String> i = keys.iterator(); i.hasNext();) {                String key = i.next();                String value = map.get(key);                System.out.println(key + "=" + value);            }        }    }
2).TreeMap
TreeMap類是基于紅黑樹算法的Map接口實(shí)現(xiàn)。TreeMap中鍵的存放方式與TreeSet相似,它將鍵存放在樹中,鍵的順序按照自然順序或者自定義順序兩種方式排列。
程序?qū)嵗?div style="height:15px;">
package day1228;        import java.util.*;        public class TreeMapDemo {        public static void main(String[] args) {            //創(chuàng)建一個(gè)新的TreeMap            Map<Integer, String> map = new TreeMap<Integer, String>();            map.put(1, "one");            map.put(2, "two");            map.put(3, "three");            map.put(4, "four");            map.put(5, "five");            //使用iterator顯示鍵和值            System.out.println("之前的map值為:");            Set<Integer> keys=map.keySet();            for(Object key:keys){                String value=map.get(key);                System.out.println(key+"="+value);            }            //刪除鍵為3的值            System.out.println("\n刪除鍵值為3的元素");            map.remove(3);            //使用iterator顯示鍵和值            System.out.println("\n之后的值Map為:");            for(Object key:keys){                String value=map.get(key);                System.out.println(key+"="+value);            }        }    }
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
《Java面向?qū)ο蟪绦蛟O(shè)計(jì)》10 Java集合寫字字帖
Java集合與框架總結(jié)與學(xué)習(xí)
Java面試手冊(cè):集合框架
java中Map,List與Set的區(qū)別
Java集合Collection和泛型
JAVA中Map集合的使用舉例
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服