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