Java自学笔记(22):【集合】 集合概述,Collection,Map

集合概述

单列Collection 和 双列Map

接口Collection  有两个子接口 :List接口(有序可重复)和Set接口(无序不可重复)

Map interface Map<K,V>   子类主要有 TreeMap和HashMap


认识单列集合Collection

接口中方法:

//添加方法:
add(Object o) //添加指定元素
addAll(Collection c) //添加指定集合
//删除方法:
remove(Object o) //删除指定元素
removeAll(Collection c) //输出两个集合的交集
retainAll(Collection c) //保留两个集合的交集
clear() //清空集合
//查询方法:
size() //集合中的有效元素个数
toArray() //将集合中的元素转换成Object类型数组
//判断方法:
isEmpty() //判断是否为空
equals(Object o) //判断是否与指定元素相同
contains(Object o) //判断是否包含指定元素
containsAll(Collection c) //判断是否包含指定集合
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class AddSelfDemo {

    public static void main(String[] args) {
        // Collection中AddAll方法演示
        List<String> list = new ArrayList<String>();//实例化
        //添加元素
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("5");
        list.add("6");
        
        list.addAll(list);
        //输出
        System.out.println(list);
        
        
        
        Set<String> set = new HashSet<String>();
        set.add("1");
        set.add("2");
        set.add("3");
        set.add("4");
        set.add("5");
        set.add("6");
        
        set.addAll(set);
        System.out.println(set);
    }

}
//List可以添加自身,Set不可以添加自身
//List 可重复,Set不可重复
import java.util.ArrayList;
import java.util.List;

public class ToArrayDemo {

    public static void main(String[] args) {
        // ToArrayDemo方法演示
        List<String> list = new ArrayList<String>();//实例化
        //添加元素
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("5");
        list.add("6");
        
        //无参ToArray
        Object[] str = list.toArray();
        printArr(str);                //1 2 3 4 5 6 
        
        //有参ToArray
        String[] str01 = new String[list.size()-1];
        String[] str02 = list.toArray(str01);
        printArr(str01);  //null null null null null 
        printArr(str02);  //1 2 3 4 5 6 
    }
    public static void printArr(Object[] str) {
        for(int i=0;i<str.length;i++ ) {
            System.out.print(str[i]+" ");
        }
        System.out.println();
    }

}

双列集合Map

方法自己找,太难写了

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

public class MapMethodDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Student[] stu = new Student[100000];
        for(int i=0;i<stu.length;i++) {
            stu[i]= new Student("2019"+(i+1),"张"+(i+1),18,"软件工程");
        }
        //加入Map
        Map<String,Student> map = new HashMap<String,Student>();
        for(int i=0;i<stu.length;i++) {
            map.put(stu[i].no,stu[i]);
        }
        
        //遍历
        //映射关系
        Set<Entry<String,Student>> set = map.entrySet();
        //iterator()
        Iterator<Entry<String,Student>> iterator = set.iterator();
        while(iterator.hasNext()) {
            Entry<String,Student> entry = iterator.next();
            System.out.println(entry.getKey());
        }
        
        
        //toArray()
        Object[] obj = set.toArray();
        for(int i=0;i<obj.length;i++) {
            Entry<String,Student> entry = (Entry<String,Student>)obj[i];
            Student stu01 =entry.getValue();
            stu01.print();
        }
        
        //查找前一千是否存在
        //key
        for(int i=0;i<1000;i++) {
            boolean isExist = map.containsKey(stu[i].no);
            System.out.println(isExist);
        }
        //value
        for(int i=0;i<1000;i++) {
            boolean isExist = map.containsValue(stu[i]);
            System.out.println(isExist);
        }
    }

}

 

posted @ 2019-08-04 10:20  提莫队长正在送命  阅读(124)  评论(0编辑  收藏  举报