Java中 Map、Set、List的基本用法

Java集合類分爲三種 
Set(集合)
:集合中對象不按特定的方式排序。並且沒有重複對象,但它有些實現類中的對象按特定方式排序。--無序,不能重複 
List(列表):集合中的對象按照檢索位置排序,可以有重複對象,允許按照對象在集中的索引位置檢索對象,List和數組有些相似。--有序,可以重複 

Map(映射):集合中的每一個元素包含一對鍵對象和值對象,集合中沒有重複的鍵對象,值對象可以重複,它的有些實現類能對集合中的鍵對象進行排序。

Collection是最基本的集合接口,聲明瞭適用於JAVA集合(只包括Set和List)的通用方法。
Set 和List 都繼承了Conllection,但Map沒有。

Collection接口的方法:
    boolean add(Object o)   :向集合中加入一個對象的引用
    void clear()                        :刪除集合中所有的對象,即不再持有這些對象的引用
    boolean isEmpty()           :判斷集合是否爲空
    boolean contains(Object o): 判斷集合中是否持有特定對象的引用
    Iterartor iterator()              : 返回一個Iterator對象,可以用來遍歷集合中的元素
    boolean remove(Object o):從集合中刪除一個對象的引用
    int size()                               :返回集合中元素的數目
    Object[] toArray()                 :返回一個數組,該數組中包括集合中的所有元素

關於:Iterator() 和toArray() 方法都用於集合的所有的元素,前者返回一個Iterator對象,後者返回一個包含集合中所有元素的數組。


Set 的用法:
   在Java中使用Set,可以方便地將需要的類型以集合類型保存在一個變量中.主要應用在顯示列表 存放的是對象的引用,沒有重複對象

    Set set=new HashSet();
    String s1=new String("hello");
    String s2=s1;
    String s3=new String("world");
    set.add(s1);
    set.add(s2);
    set.add(s3);
    System.out.println(set.size());//打印集合中對象的數目 爲 2。
    Set 的 add()方法是如何判斷對象是否已經存放在集合中?
    boolean isExists=false;
    Iterator iterator=set.iterator();
    while(it.hasNext()){
        String oldStr=it.next();
        if(newStr.equals(oldStr)){
        isExists=true;
    }

List的用法:

List[<數據類型>] list = new ArrayList[<數據類型>]();
List的常用方法有:
獲得集合內元素個數:list.size();

添加元素:
默認添加:list.add(e);
指定下標添加(添加後下標後的元素向後挪一位):list.add(index,e);

刪除元素:
返回是否刪除:list.remove(e);
直接刪除指定下標的元素(只刪除找到的第一個相符合的元素):list.remove(index);

替換元素(替換掉指定下標的元素):list.set(index,e);

取出元素:list.get(index);

清空集合:list.clear();

判斷集合中是否存在某個元素(存在返回true,不存在返回false):list.contains(e);

對比兩個集合中的所有元素:
兩個對象一定相等:list.equals(list2);
兩個對象不一定相等:list.hashCode() == list2.hashCode();
(兩個相等對象的equals方法一定爲true, 但兩個hashcode相等的對象不一定是相等的對象。)

獲得元素下標:
元素存在則返回找到的第一個元素的下標,不存在則返回-1:list.indexOf(e);
元素存在則返回找到的最後一個元素的下標,不存在則返回-1:list.lastIndexOf(e);

判斷集合是否爲空(空則返回true,非空則返回false):list.isEmpty();

返回Iterator集合對象:list.iterator();

將集合轉換爲字符串:list.toString();

截取集合(從fromIndex開始在toIndex前結束,[fromIndex,toIndex)):list.subList(fromIndex,toIndex);

將集合轉換爲數組:
默認類型:list.toArray();
指定類型(objects爲指定類型的數組對象,並將轉換好的數組賦值給objects數組):list.toArray(objects);

Map的用法:

Map<Object,Object> map = new HashMap<Object, Object>();

map.put(Object key, Object value): 向集合中加入元素
map.remove(Object key):   刪除與KEY相關的元素
map.putAll(Map t):   將來自特定映像的所有元素添加給該映像
map. clear(): 從映像中刪除所有映射

遍歷map的幾種方法:

1、最羅嗦遍歷Map的方法:

Set keys = map.keySet( );
if(keys != null) {
    Iterator iterator = keys.iterator( );
    while(iterator.hasNext( )) {
    Object key = iterator.next( );
    Object value = map.get(key);
    }
}
2、使用Map.Entry類,你可以得到在同一時間得到所有的信息。

Map類提供了一個稱爲entrySet()的方法,這個方法返回一個Map.Entry實例化後的 對象集。接着,Map.Entry類提供了一個getKey()方法和一個getValue()方法,因此,上面的代碼可以被組織得更符合邏輯。

Map.Entry同時也提供了一個setValue()方法

Map<Integer,String> map = new HashMap<Integer, String>();
map.put(001, "world");
map.put(002, "hello");
for(Map.Entry<Integer, String> entry:map.entrySet()){
    System.out.println(entry.getKey()+"==="+entry.getValue());
}
output:
1===world
2===hello
3、最簡單的方法,使用增強for循環:
for (int key : map.keySet()) {
    System.out.println(key + " : " + map.get(key));
}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章