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

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

集合接口collection與Map接口

2019-11-14 12:08:09
字體:
來源:轉載
供稿:網友

位于java.util包中

collection接口(不唯一、無序)

子接口

1.List接口  (存儲一組不唯一、有序的對象)

實現類ArrayList(非同步的unsynchronized不是線程安全)實現類LinkedList(非同步的unsynchronized不是線程安全)實現類Vector(線程安全的,同步的synchronized):(子類)Stack

ArrayList 采用數組方式存儲數據、利用索引直接獲取元素,遍歷元素和隨機訪問元素的效率比較高ArrayList進行元素替換可使用set(int index,Object o)的方法;也可以通過移除remove(int index)或者remove(Object o),然后添加add(Obeject o)的方式

indexOf(Object o) 返回元素在集合中出現的索引boolean add(Object o) 在列表的末尾順序添加元素,起始索引位置從0 開始void add(int index,Object o) 在指定的索引位置添加元素。索引位置必須介于0和列表中元素個數之間int size() 返回列表中的元素個數Object get(int index) 返回指定索引位置處的元素。取出的元素是Object 類型,使用前需要進行強制類型轉換boolean contains(Object o) 判斷列表中是否存在指定元素boolean remove(Object o) 從列表中刪除元素Object remove(int index) 從列表中刪除指定位置元素,起始索引位置從0 開始

addAll是傳入一個List,將此List中的所有元素加入到當前List中,也就是當前List會增加的元素個數為傳入的List的大小

即addAll(Collection c)   add(int index,Elelemt e)

--------------------------------------

addAll(Collection c)

此方法按照指定 collection 的迭代器所返回的元素順序,將該 collection 中的所有元素添加到此列表的尾部。如果正在進行此操作時修改指定的 collection ,那么此操作的行為是不確定的。(這意味著如果指定的 collection 是此列表且此列表是非空的,那么此調用的行為是不確定的)。

C

包含要添加到此列表中的元素的 collection

return

如果此列表由于調用而發生更改,則返回 true

Throws

NullPointerException: 如果指定的 collection 為 null

addAll是傳入一個List,將此List中的所有元素加入到當前List中,也就是當前List會增加的元素個數為傳入的List的大小

即addAll(Collection c)add(int index,Elelemt e)

--------------------------------------

addAll(Collection c)

此方法按照指定 collection 的迭代器所返回的元素順序,將該 collection 中的所有元素添加到此列表的尾部。如果正在進行此操作時修改指定的 collection ,那么此操作的行為是不確定的。(這意味著如果指定的 collection 是此列表且此列表是非空的,那么此調用的行為是不確定的)。

C

包含要添加到此列表中的元素的 collection

return

如果此列表由于調用而發生更改,則返回 true

Throws

NullPointerException: 如果指定的 collection 為 null

List.addAll()方法,就是規定了,自己的這個List 就是容器,往里面增加的List 實例,增加到里面后,都會被看成對象。

    這時:List.add(list1),List.add(list2);List.add(list3),  這時,List.size 它的大小就是所有list 實例化后的總數和總的記錄數。

   

    因此,當需要把多個List 實例放到一起的時候,必須使用List.addAll()方法。

Java中的ArrayList的初始容量和容量分配

一般情況下,使用的時候會像這樣進行聲明:List arrayList = new ArrayList();如果像上面這樣使用默認的構造方法,初始容量被設置為10。當ArrayList中的元素超過10個以后,會重新分配內存空間,使數組的大小增長到16。可以通過調試看到動態增長的數量變化:10->16->25->38->58->88->...

也可以使用下面的方式進行聲明:List arrayList = new ArrayList(4);將ArrayList的默認容量設置為4。當ArrayList中的元素超過4個以后,會重新分配內存空間,使數組的大小增長到7。可以通過調試看到動態增長的數量變化:4->7->11->17->26->...

那么容量變化的規則是什么呢?請看下面的公式:((舊容量 * 3) / 2) + 1

一旦容量發生變化,就要帶來額外的內存開銷,和時間上的開銷。所以,在已經知道容量大小的情況下,推薦使用下面方式進行聲明:List arrayList = new ArrayList(CAPACITY_SIZE);即指定默認容量大小的方式。

LinkedList 采用鏈表存儲方式。插入、刪除元素時效率比較高void addFirst(Object o) 在列表的首部添加元素void addLast(Object o) 在列表的末尾添加元素Object getFirst() 返回列表中的第一個元素Object getLast() 返回列表中的最后一個元素Object removeFirst() 刪除并返回列表中的第一個元素

Object removeLast() 刪除并返回列表中的最后一個元素

 add(int index, E element):在此列表中指定的位置插入指定的元素。

       addAll(Collection<? extends E> c):添加指定 collection 中的所有元素到此列表的結尾,順序是指定 collection 的迭代器返回這些元素的順序。

       addAll(int index, Collection<? extends E> c):將指定 collection 中的所有元素從指定位置開始插入此列表。

       AddFirst(E e): 將指定元素插入此列表的開頭。

       addLast(E e): 將指定元素添加到此列表的結尾。

clear(): 從此列表中移除所有元素。

       remove():獲取并移除此列表的頭(第一個元素)。

       remove(int index):移除此列表中指定位置處的元素。

       remove(Objec o):從此列表中移除首次出現的指定元素(如果存在)。

       removeFirst():移除并返回此列表的第一個元素。

       removeFirstOccurrence(Object o):從此列表中移除第一次出現的指定元素(從頭部到尾部遍歷列表時)。

       removeLast():移除并返回此列表的最后一個元素。

       removeLastOccurrence(Object o):從此列表中移除最后一次出現的指定元素(從頭部到尾部遍歷列表時)。

       對于查找方法的源碼就沒有什么好介紹了,無非就是迭代,比對,然后就是返回當前值。

       get(int index):返回此列表中指定位置處的元素。

       getFirst():返回此列表的第一個元素。

       getLast():返回此列表的最后一個元素。

       indexOf(Object o):返回此列表中首次出現的指定元素的索引,如果此列表中不包含該元素,則返回 -1。

       lastIndexOf(Object o):返回此列表中最后出現的指定元素的索引,如果此列表中不包含該元素,則返回 -1

2.Set接口  (存儲一組唯一、無序的對象)

set不存在get()方法(無序的)

采用對象的equals()方法比較兩個對象是否相等實現類HashSet(不同步的,線程不安全的)實現類TreeSet(不同步的,線程不安全的)add(Object o) 若未包含指定元素,則添加指定元素clear() 移除所有元素size() 返回set中的元素的數量isEmpty() 若set不包含任何元素則返回truecontains(Object o) 包含指定元素,則返回trueremove(Object o) 指定元素存在于set中,則將其移除

toArray()

addAll方法用來向Set集合添加另一個集合對象所包含的所有內容。

語法  boolean addAll(Collection<? extends E> c) 

返回值:如果Set集合發生更改,則返回true。

參數:c是要添加到Set集合中的另一個集合對象。

示例  本示例創建一個Set集合,為該集合添加一些對象,然后再創建第二個Set集合,同樣添加一些對象,最后調用addAll方法將第二個Set集合添加到第一個Set集合中,并且分別輸出調用addAll方法前后Set集合的大小。

Map接口(鍵值對<k,v>)

鍵值對形式保存數據 key(唯一、無序)-value(不唯一、無序)key要求唯一,無法修改 只能remove鍵值,不能remove value值

Hashtable:底層是哈希表數據結構,不可以存入null鍵null值,該集合是線程同步的。jdk1.0效率低

HashMap:底層是哈希表數據結構,允許使用null值和null鍵,該集合是不同步的。jdk1.2效率高

TreeMap:底層是二叉樹數據結構。線程不同步,可以用于給map集合中的鍵進行排序。

isEmpty() 是否存在元素clear() 清除集合中所有元素Object  put(Object key, Object val)   以“鍵- 值”對的方式進行存儲若包含則舊值將被替換  檢查key是否存在,若存在則進行修改操作;反之進行插入操作Object get(Object key)  根據鍵返回相關聯的值,如果不存在指定的鍵,返回nullObject remove(Object key) 刪除由指定的鍵映射的“鍵- 值對”int size()  返回元素個數Set keySet() 返回鍵的集合Collection values() 返回值的集合boolean containsKey(Object key)  如果存在由指定的鍵映射的“鍵-對”,返回truecontainsvalue(Object value)          判斷集合中是否存在value

Set entrySet() 鍵值對


上一篇:快速排序

下一篇:windows---窗口

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲va男人天堂| 国产精品久久9| 亚洲国产精品va在看黑人| 欧美一级bbbbb性bbbb喷潮片| 欧美性xxxx极品hd欧美风情| 欧美激情二区三区| 亚洲欧洲国产一区| 欧美性色19p| 国产精品亚洲一区二区三区| 97国产精品人人爽人人做| 九色精品免费永久在线| 国产成人免费av电影| 成人在线精品视频| 国产亚洲精品va在线观看| 国产午夜精品视频| 日韩中文字幕网站| 一区二区在线视频播放| 欧美国产日韩免费| 亚洲综合日韩中文字幕v在线| 国内外成人免费激情在线视频网站| 91a在线视频| 亚洲第一视频网| 欧美激情在线观看| 日韩视频―中文字幕| 国产精品盗摄久久久| 欧美极品少妇xxxxⅹ喷水| 亚洲视频在线观看视频| 精品亚洲夜色av98在线观看| 亚洲精品电影久久久| 亚洲伊人久久大香线蕉av| 国产精品一区二区久久国产| 日韩精品极品毛片系列视频| 国产亚洲精品成人av久久ww| 亚洲在线观看视频| 国产精品手机播放| 欧美成人精品h版在线观看| 国产精品99久久99久久久二8| 久久久久在线观看| 欧美激情视频一区二区| 成人精品福利视频| 中文字幕在线看视频国产欧美在线看完整| 91亚洲精品久久久久久久久久久久| 国产在线观看精品一区二区三区| 久久这里只有精品视频首页| 国产精品入口尤物| 欧美自拍大量在线观看| 国产精品十八以下禁看| 欧美一区二区三区免费观看| 久久视频免费在线播放| 精品国产乱码久久久久久婷婷| 成人两性免费视频| 国产丝袜一区二区三区免费视频| 国内精品国产三级国产在线专| 国产成人精品久久二区二区| 国产午夜精品视频免费不卡69堂| 亚洲精品视频久久| 久久久国产成人精品| 97超视频免费观看| 欧美丰满片xxx777| 亚洲va国产va天堂va久久| 揄拍成人国产精品视频| 色狠狠av一区二区三区香蕉蜜桃| 国产成人亚洲综合91精品| 亚洲美女精品久久| 黑丝美女久久久| 91久久精品久久国产性色也91| 精品久久在线播放| 91日本在线视频| 91免费精品国偷自产在线| 亚洲精品久久久久国产| 黑人巨大精品欧美一区二区免费| 成人黄色免费看| 国产精品毛片a∨一区二区三区|国| 日本成熟性欧美| 欧美黑人狂野猛交老妇| 亚洲自拍欧美另类| 成人精品一区二区三区电影免费| 亚洲精品久久久久久久久| 中文字幕九色91在线| 亚洲天堂第一页| 欧美极品在线视频| 97精品国产aⅴ7777| 国产欧美欧洲在线观看| 91精品久久久久久| 亚洲精品一区av在线播放| 国产精品精品久久久久久| 亚洲国产精品小视频| 国产成人aa精品一区在线播放| 日韩小视频网址| 欧美激情亚洲视频| 欧美日韩裸体免费视频| 欧美高清视频在线观看| 亚洲精品视频二区| 欧洲日韩成人av| 国产美女精品免费电影| 97久久精品人搡人人玩| 亚洲福利视频久久| 国产九九精品视频| 亚洲日韩欧美视频一区| 国产精品成人一区二区三区吃奶| 7m精品福利视频导航| 欧美日韩亚洲天堂| 亚洲欧美国产精品| 一区二区欧美亚洲| 亚洲无av在线中文字幕| 日本成人在线视频网址| 亚洲加勒比久久88色综合| 日韩欧美在线免费| 欧美日韩中文字幕综合视频| 亚洲在线www| 亚洲欧美日韩第一区| 国产91成人在在线播放| 精品国产91久久久久久老师| 亚洲第一区在线观看| 久久天堂电影网| 日韩久久免费视频| 国产精品久久久久久五月尺| 国产视频观看一区| 91精品国产乱码久久久久久蜜臀| 亚洲色图25p| 亚洲成人在线网| 亚洲剧情一区二区| 亚洲视频999| 国产精品日日做人人爱| 亚洲精品久久久一区二区三区| 国外成人免费在线播放| 久久影院中文字幕| 热re91久久精品国99热蜜臀| 欧美另类老肥妇| 自拍偷拍亚洲在线| 亚洲欧美激情在线视频| 一道本无吗dⅴd在线播放一区| 久久国产精品亚洲| 日本久久91av| 国内精品模特av私拍在线观看| 成人黄色生活片| 亚洲色图色老头| 亚洲欧美综合精品久久成人| 日韩av三级在线观看| 国产偷亚洲偷欧美偷精品| 国产一区二区三区久久精品| 国产精品色悠悠| 自拍偷拍免费精品| 国产亚洲一区二区精品| 亚洲国产日韩欧美综合久久| 91九色视频在线| 亚洲欧美日韩国产中文| 日韩欧美在线免费观看| 日韩av高清不卡| 国产精品男女猛烈高潮激情| 日韩精品一区二区三区第95| 亚洲欧美变态国产另类| 国产剧情久久久久久| 亲爱的老师9免费观看全集电视剧| 欧美性xxxx18| 欧美在线观看网站| 最新91在线视频| 色在人av网站天堂精品| 久久久久亚洲精品国产| 国产福利精品视频| 欧美电影在线观看| 久久久中精品2020中文| 欧美丝袜一区二区三区| 久久久人成影片一区二区三区|