集合(list,Map,HashMap,TreeMap)

Q1:list集合的应用:

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应用

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 按照插入顺序
           }

说明:

1:TreeSet:基于TreeMap,生成一个总是处于排序状态的set,内部以TreeMap来实现。它是使用元素的自然顺序对元素进行排序,或者根据创建Set 时提供的 Comparator 进行排序,具体取决于使用的构造方法。

2:集合是数组的升级,长度是动态的,无需预定义

3:Collection 接口存储一组不唯一,无序的对象

4:Set 接口存储一组唯一,无序的对象

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();
    }
}

 

结果:

 

 


posted @ 2018-11-13 15:55  zywds  阅读(446)  评论(0编辑  收藏  举报