1. java中各集合的用法
舉個例子吧
List list = new ArrayList();
還有其他的等等
2. java中的集合類的幾個鮮為人知的實用方法
1。list方法。 將 Enumeration 類型轉換成list類型
2。swap方法。方便的調換一個list中的兩個元素的位置。
3。lastIndexOfSubList方法。從一個list中從後面開始查找另外一個list第一次出現的位置。
4。rotate方法。在一個list中,順序移動每一個元素的位置到指定的位置。
5。replaceAll方法。用指定的元素替換一個list中所用匹配的元素。
6。indexOfSubList方法。從一個list中從前面開始查找另外一個list第一次出現的位置。
3. java集合
集合就相當於你午飯的飯碗
Collection c=new HashSet(); // 我要一個大碗...
Collection<米飯> c=new HashSet<米飯>(); // 我要一個只能裝米飯的大碗,(不能裝菜, 也不能裝沙子);
回到你的問題,
aaa,bbb,ccc 相當於飯碗里裝的東西, 比如 aaa類型為米飯, bbb 類型為菜, ccc類型為沙子(就是喜歡吃帶沙子的米....).
Collection c=new HashSet(); // 你要一個大碗.. 可以裝任何東西的大碗.
相當於
Collection<東西> c=new HashSet<東西>();// 你要一個大碗.. 只要是東西就能放進去的大碗..
你程序寫的是a b c 都是String類型, 其實你可以往裡放數字, 枚舉 等其他的...
abc 你傳遞進去之前是字元類型,
it.next() 拿出來的是object , 然後你通過 (String)強制轉換成了String而已.
c 對外界來說它是Collection 實際上是HashSet . 就相當於 你對別人說 我吃的是菜, 但是你自己知道你吃的是豆芽菜. (別人不知道你吃的是豆芽菜)
4. java集合的通用方法有哪些
map集合,對象以鍵值對的形式存放在集合中,並且鍵它是不允許重復的。常用的實現是HashMap和TreeMap,HashMap能夠快速的查詢到一個鍵,而TreeMap則是對鍵按序存放的。
list介面是對collection的擴充,它允許存放相同的元素。常用的有2種實現類,ArrayList和LinkedList。ArraryList是一種以數組形式存放元素的集合,更適合於做查詢,而LinkedList內部實現鏈表,適合做增刪元素操作。
set介面同樣是對collection的擴充,它不允許存放相同的元素。常用類HashSet和TreeSet.HashSet主要能夠快速定位到一個元素,需要用到HashCode()方法,而TreeSet類中可以實現對元素的排序。
5. Java編程:你所知道的集合類都有哪些主要方法
看API啊,我主要用到的是list arrayList map hashmap
6. java集合的學習方法
集合是多個對象的容器,容器里聚集了一組對象。
java中各種集合類通過集合框架進行組織。
對所有集合類最經常的操作就是訪問集合中的元素。
列表(List)
集合(Set)
映射(Map)
7. java的集合類都有哪些,主要方法
:查API文檔埃方法都差不多 存值取值 Set用迭代取值,List可以用迭代也可以用get(下標值),因為List是有順序的,Set沒有順序。Set的add()方法返回一個boolean值,因為不能重復嘛,重復放東西就返回false。Map要特殊一點,用put放東西。
8. java集合set有哪些方法
set是一個介面,一般實現類用HashSet
方法摘要
boolean add(E e)
如果 set 中尚未存在指定的元素,則添加此元素(可選操作)。
boolean addAll(Collection<? extends E> c)
如果 set 中沒有指定 collection 中的所有元素,則將其添加到此 set 中(可選操作)。
void clear()
移除此 set 中的所有元素(可選操作)。
boolean contains(Object o)
如果 set 包含指定的元素,則返回 true。
boolean containsAll(Collection<?> c)
如果此 set 包含指定 collection 的所有元素,則返回 true。
boolean equals(Object o)
比較指定對象與此 set 的相等性。
int hashCode()
返回 set 的哈希碼值。
boolean isEmpty()
如果 set 不包含元素,則返回 true。
Iterator<E> iterator()
返回在此 set 中的元素上進行迭代的迭代器。
boolean remove(Object o)
如果 set 中存在指定的元素,則將其移除(可選操作)。
boolean removeAll(Collection<?> c)
移除 set 中那些包含在指定 collection 中的元素(可選操作)。
boolean retainAll(Collection<?> c)
僅保留 set 中那些包含在指定 collection 中的元素(可選操作)。
int size()
返回 set 中的元素數(其容量)。
Object[] toArray()
返回一個包含 set 中所有元素的數組。
<T>
T[] toArray(T[] a)
返回一個包含此 set
中所有元素的數組;返回數組的運行時類型是指定數組的類型。
9. Java集合框架的操作的方法有哪些怎麼用
淺談JAVA集合框架
Java提供了數種持有對象的方式,包括語言內置的Array,還有就是utilities中提供的容器類(container classes),又稱群集類(collection classes)。集合在java中非常重要,在討論之前,先來看幾個面試中的經典問題。
1 Collection 和 Collections的區別。
2 List, Set, Map是否繼承自Collection介面。
3 ArrayList和Vector的區別。
4 HashMap和Hashtable的區別。
篇尾有答案,我們開始正題。
集合Collection介面
--Collection 是任何對象組,元素各自獨立,通常擁有相同的套用規則。Set List由它派生。
基本操作 增加元素add(Object obj); addAll(Collection c);
刪除元素 remove(Object obj); removeAll(Collection c);
求交集 retainAll(Collection c);
刪除元素 remove(Object obj); removeAll(Collection c);
求交集 retainAll(Collection c);
訪問/遍歷集合元素的好辦法是使用Iterator介面(迭代器用於取代Enumeration)
Public interface Iterator{
Public Boolean hasNext(};
Public Object next(};
Public void remove(};
}
集set
--沒有重復項目的集合
有三種特定類型的集可用
HashSet-基於散列表的集,加進散列表的元素要實現hashCode()方法
LinkedHashSet-對集迭代時,按增加順序返回元素
TreeSet-基於(平衡)樹的數據結構
清單List
--位置性集合。加進清單的元素可以加在清單中特定位置或加到末尾
有兩個特定版本
ArrayList(數組表)-類似於Vector,都用於縮放數組維護集合。區別:
一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的
二.數據增長:當需要增長時,Vector默認增長為原來一培,而ArrayList卻是原來的一半
LinkedList(鏈表)-是雙向鏈表,每個節點都有兩個指針指向上一節點和下一節點。
用在FIFO,用addList()加入元素 removeFirst()刪除元素
用在FILO,用addFirst()/removeLast()
ListIterator提供雙向遍歷next() previous(),可刪除、替換、增加元素
映射表Map
--用於關鍵字/數值對,像個Dictionary
處理Map的三種集合
關鍵字集KeySet()
數值集value()
項目集enrySet()
四個具體版本
HashMap-散列表的通用映射表
LinkedHashMap-擴展HashMap,對返回集合迭代時,維護插入順序
WeakHashMap-基於弱引用散列表的映射表,如果不保持映射表外的關鍵字的引用,則內存回收程序會回收它
TreeMap-基於平衡樹的映射表
HashMap-散列表的通用映射表
LinkedHashMap-擴展HashMap,對返回集合迭代時,維護插入順序
WeakHashMap-基於弱引用散列表的映射表,如果不保持映射表外的關鍵字的引用,則內存回收程序會回收它
TreeMap-基於平衡樹的映射表
Collections類,用於同步集合,還能改變集合只讀方式的類
e.g.:
Map mp=new HashMap();
mp=Collections.synchronizedMap(mp); //生成線程安全的映射表
mp=Collections.unmodifiableMap(mp); //生成只讀映射表
Comparable 自然順序的排序類 Comparator 面向樹的集合排序類
容器分類學(Container taxonomy)
集合介面: Collection List Set;Map Iterator ListIterator。
抽象類: AbstractCollection AbstractList AbstractSet AbstractMap AbstractSequentiaList。
老版本中的集合類型
Vector類
Vector,就是向量。一種異構的混合體,可以動態增加容量。對它的操作簡要如下
比如我們有一個Vector: Vector myVec=new Vector(a_Array.length)
取得vector的長度:myVec.size();
賦值:set(int position,Object obj) / setElementAt(Object obj, int position) –不支持動態增長
add(Object obj )/ addElement(Object obj) 在Vector末尾加入對象
e.g.:myVec.add(new a_Array[0]);
取出元素:get(int position) / getElement(int position)
Stack類
是Vector的子類。就是數據結構里講濫了的堆棧(這個詞可簡稱棧,不要混淆於heap-堆)。後進先出的存取方式。
Stack()構造空棧
Empty()叛空
Search()檢查堆棧是否有元素
Peek()取得棧頂元素
Pop()彈棧
Push()入棧
Enumeration介面
Dictionary類
字典。關鍵字/數值方式存取數據,如果映射沒有此關鍵字,取回null。
Hashtable類
是Dictionary結構的具體實現。
面試題答案
Collection 和 Collections的區別。
Collections是個java.util下的類,它包含有各種有關集合操作的靜態方法。
Collection是個java.util下的介面,它是各種集合結構的父介面
List, Set, Map是否繼承自Collection介面? List,Set是 Map不是
ArrayList和Vector的區別。
一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的
二.數據增長:當需要增長時,Vector默認增長為原來一培,而ArrayList卻是原來的一半
HashMap和Hashtable的區別
一.歷史原因:Hashtable是基於陳舊的Dictionary類的,HashMap是Java 1.2引進的Map介面的一個實現
二.同步性:Hashtable是線程安全的,也就是說是同步的,而HashMap是線程序不安全的,不是同步的
三.值:只有HashMap可以讓你將空值作為一個表的條目的key或value