集合(list,Map,HashMap,TreeMap)

Q1:list集合的應用:java

package com.zhangyuwei.collection;

import java.util.ArrayList;
import java.util.List;

public class test1 {
    public static void main(String[] args) {
        List<Integer> list=new ArrayList<Integer>();
        list.add(1);list.add(2);list.add(3);
        System.out.println("長度:"+list.size());
        list.remove(0);
        System.out.println("長度:"+list.size());
        list.clear();
        System.out.println("長度:"+list.size());
    }
}

Q2:ArrayList應用數組

package com.zhangyuwei.collection;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;

public class test2 {
    public static void main(String[] args) {
        ArrayList<String> arrayList=new ArrayList<String>();
        arrayList.add("Tom");
        arrayList.add("Jerry");
        arrayList.add("Micky");
        //使用iterator遍歷元素
        Show(arrayList);
        System.out.println("-----------------------");
        System.out.println(arrayList.get(1));
        System.out.println("-----------------------");
        arrayList.add(1,"ZhangSan");
        System.out.println(arrayList.get(1));
        System.out.println("---------添加一個集合--------------");
        ArrayList<String> arrayList1=new ArrayList<String>();
        arrayList1.add("ZhangYuWei");
        arrayList.addAll(arrayList1);
        System.out.println("---------輸出加入集合後的值--------------");
        Show(arrayList);
        System.out.println("--------判斷是否包含某個元素---------------");
        if(arrayList.contains("Tom")){
            System.out.println("Tom is included in the Arraylist collection");
        }
        System.out.println("------一種新的元素,這個集合支持一些新的特性-----------------------");
        LinkedList<String> linkedLis=new LinkedList<String>();
        linkedLis.addAll(arrayList);
        /*集合中設置值*/
        linkedLis.set(0,"LunXun");
        System.out.println(linkedLis.get(1));
        System.out.println("---------得到第一個元素----------------------");
        System.out.println(linkedLis.getFirst());
        System.out.println("---------得到最後一個元素----------------------");
        System.out.println(linkedLis.getLast());
        System.out.println("---------獲取並移除第一個元素----------------------");
        System.out.println(linkedLis.pollFirst());
        System.out.println(linkedLis.getFirst());
        System.out.println("---------獲取但不移除第一個元素----------------------");
        System.out.println(linkedLis.peekFirst());
        System.out.println(linkedLis.getFirst());
    }
    public static void Show(ArrayList<String> arrayList){
        Iterator iterator=arrayList.iterator();
        while (iterator.hasNext()){
            //得到值
            Object value=iterator.next();
            System.out.println(value);
        }
    }
}

Q3:HashMap應用ide

package com.zhangyuwei.collection;

import java.util.*;

public class test3 {
    public static void main(String[] args) {
        HashMap<String,Object> hashMap=new HashMap<String, Object>();
        // 向Map中添加元素
        hashMap.put("Tom", 26);
        hashMap.put("Jack", 18);
        hashMap.put("Micky", 17);
        hashMap.put("Kate", 15);
        System.out.println("---------根據key值獲取value---------------");
        System.out.println(hashMap.get("Tom"));
        System.out.println("--------------移除--------------------");
        hashMap.remove("Tom");
        System.out.println("-----------根據key進行判斷-------------------");
        if(hashMap.containsKey("Tom")){
            System.out.println("Tom is included in the hashmap");
        }
        System.out.println("-------判斷HashMap是否爲空------------");
        if(!hashMap.isEmpty()){
            System.out.println(hashMap.size());
        }
        System.out.println("-----------獲取key的集合---------------");
        for(String item:hashMap.keySet()){
            System.out.println(item);
        }
        System.out.println("-----------獲取value的集合---------------");
        TreeMap<String, Object> treeMap = new TreeMap<String, Object>();
        /*將HashMap集合加入到TreeMap中*/
        treeMap.putAll(hashMap);
        System.out.println("----------輸出內容會按照key排序------------------");
        for (Map.Entry<String,Object> entry:treeMap.entrySet()){
            System.out.println("key:"+entry.getKey()+",value:"+entry.getValue());
        }
        System.out.println("-------LinkHashMap-----------");
        LinkedHashMap<String,Integer> linkedHashMap=new LinkedHashMap<String,Integer>();
        // 向Map中添加元素
        linkedHashMap.put("Tom", 26);
        linkedHashMap.put("Jack", 18);
        linkedHashMap.put("Micky", 17);
        linkedHashMap.put("Kate", 15);
        System.out.println("------保持了插入的順序------------");
        /*for (Map.Entry<String,Integer> entry:linkedHashMap.keySet()){
            System.out.println("key:"+entry.getKey()+",value:"+entry.getValue());
        }*/
        System.out.println(linkedHashMap.get("Kate"));
    }
}

Q4:set基礎操做函數

List<Integer> list = new ArrayList<Integer>();
           list.add(3);
           list.add(4);
           HashSet<Integer> hashSet = new HashSet<Integer>();
           hashSet.add(1);
           hashSet.add(3);
           hashSet.add(2);
           hashSet.add(6);
           // 重複元素將不能被添加
           hashSet.add(3);
           // 只要有元素被添加就返回true
           if (hashSet.addAll(list)) {
               System.out.println("Add success");
           }
           // 判斷是否存在某個集合
           if (hashSet.containsAll(list)) {
               System.out.println("The hashSet is contain 3 and 4");
           }
           Iterator<Integer> it = hashSet.iterator();
           while (it.hasNext()) {
               System.out.print(it.next() + " ");
               // 1 2 3 4 6
               // 看結果是被排序了,HashSet按照Hash函數排序,Integer值的HashCode就是其int值
           }
           // 換轉成數組
           Object[] integers = hashSet.toArray();
           for (int i = 0; i < integers.length; i++) {
               System.out.print((Integer) integers[i]);
           }
           //移除元素
           hashSet.remove(3);
           
           TreeSet<String> treeSet = new TreeSet<String>();
           treeSet.add("C");
           treeSet.add("A");
           treeSet.add("D");
           treeSet.add("B");
           for (Iterator<String> strIt = treeSet.iterator(); strIt.hasNext();) {
               System.out.print(strIt.next());
               // ABCD 按照字母順序
           }
           LinkedHashSet<String> linkedHashSet = new LinkedHashSet<String>();
           linkedHashSet.add("C");
           linkedHashSet.add("A");
           linkedHashSet.add("D");
           linkedHashSet.add("B");
           for (Iterator<String> linkedIt = linkedHashSet.iterator(); linkedIt
                   .hasNext();) {
               System.out.print(linkedIt.next());
               // CADB 按照插入順序
           }

說明:this

1:TreeSet:基於TreeMap,生成一個老是處於排序狀態的set,內部以TreeMap來實現。它是使用元素的天然順序對元素進行排序,或者根據建立Set 時提供的 Comparator 進行排序,具體取決於使用的構造方法。spa

2:集合是數組的升級,長度是動態的,無需預約義code

3:Collection 接口存儲一組不惟一,無序的對象對象

4:Set 接口存儲一組惟一,無序的對象blog

5:Map接口存儲一組鍵值對象,提供key到value的映射,Key不容許重複排序

6:List 容許重複,有序

7:set 不容許重複,無序

8:map value可重複,key不可重複,無序

Q5:一個簡單的應用實例:

1:DVD實體

package com.zhangyuwei.dvdSystem;

public class DVD {
    public int id;
    public String name;
    public double price;
    public boolean isRent;

    public DVD(int id, String name, double price, boolean isRent) {
        this.id = id;
        this.name = name;
        this.price = price;
        this.isRent = isRent;
    }

    @Override
    public String toString() {
        return ("編號:"+this.id+"\t\t"+"名稱:"+this.name+"\t\t"+"價格:"+this.price+"\t\t"+"借出:"+(this.isRent?"是":"否"));
    }
}

 

2:DVDService

package com.zhangyuwei.dvdSystem;

import java.util.HashMap;
import java.util.Map;

/*服務 DBD管理 DVD業務*/
public class DVDService {
    /**構造*/
    public DVDService(){
        init();
    }
    /**DVD集合*/
    public Map<Integer,DVD> map=new HashMap<Integer, DVD>();
    public void init() {
        DVD d1 = new DVD(2017001, "功夫", 17.3, true);
        DVD d2 = new DVD(2017002, "寒戰", 25.6, false);
        DVD d3 = new DVD(2017003, "超體", 11.9, true);
        DVD d4 = new DVD(2017004, "異型", 88.8, false);
        DVD d5 = new DVD(2017005, "龍貓", 64.1, true);
        map.put(d1.id,d1);map.put(d2.id,d2);map.put(d3.id,d3);
        map.put(d4.id,d4);map.put(d5.id,d5);
    }
    /**添加DVD*/
    public void addDVD(DVD dvd){
        map.put(dvd.id,dvd);
    }
    /*刪除DVD*/
    public void delDVD(int id){
        map.remove(id);
    }
    /**顯示DVD*/
    public void showDVD(){
        for(Map.Entry<Integer,DVD> entry:map.entrySet()){
            System.out.println(entry.getValue().toString());
        }
    }
    /**修改DVD借出狀態*/
    public void modify(int id,boolean isRend){
        DVD dvd=map.get(id);
        dvd.isRent=isRend;
    }
}

 

3:客戶端(test)(DVDClient)

package com.zhangyuwei.dvdSystem;

public class DVDClient {
    public static void main(String[] args) {
        DVDService dvdService=new DVDService();
        dvdService.showDVD();
        System.out.println("-----------------------");
        dvdService.modify(2017004,true);
        dvdService.showDVD();
        System.out.println("-----------------------");
        dvdService.delDVD(2017004);
        dvdService.showDVD();
    }
}

 

結果:

相關文章
相關標籤/搜索