Map
Map用于保存具有映射关系的数据,Map里保存着两组数据:key和value,它们都可以使任何引用类型的数据,但key不能重复。所以通过指定的key就可以取出对应的value。
//创建集合对象 Map<String,String> map=new HashMap<String,String>(); //添加元素 map.put("001","大大"); map.put("002","小小"); map.put("003","做做"); map.put("004","哈哈"); //删除键值对元素 System.out.println(map.remove("003")); //清空集合中的元素 // map.clear(); //判断集合中是否存在指定元素 System.out.println(map.isEmpty()); //集合的个数 System.out.println(map.size()); //输出集合对象 System.out.println(map);
List
有序,存储和取出的元素顺序一致
可重复,存储的元素可以重复
遍历方式:
//迭代器 ListIterator<String> lit=list.listIterator(); while (lit.hasNext()){ String s=lit.next(); if (s.equals("AAA")){ lit.add("SSS"); } } System.out.println("============="); //for循环 for (int i=0;i<list.size();i++){ Student s= list.get(i); System.out.println(s.getName()+","+s.getAge()); } System.out.println("============="); //增强for for (Student s:list) { System.out.println(s.getName()+","+s.getAge()); }
数据结构
栈:先进后出
队列:先进先出
数组:查询效率高;删除效率低;添加效率极低
链表:增删快
List集合子类特点:
ArrayList:底层数据列表是数组,查询快,增删慢
LinkedList:底层数据列表是链表,查询慢,增删快.
Set
不包含重复元素的集合;没有索引的方法,所以不能使用for循环遍历
哈希值 HashCode()
根据对象的地址或者字符串或者数字算出来的int类型的数值
同一个对象多次调用HashCode()方法返回的哈希值是相同的;
默认情况下,不同对象的哈希值是不相同的;
通过方法重写,可以实现不同对象的哈希值是相同的.
HashSet集合
特点:
底层数据结构是哈希表;
对集合迭代顺序不作任何保证,也就是说不保证存储和取出的元素顺序一致;
没有带索引的方法,所以不能使用普通for循环遍历;
由于是set集合,所有是不包含重复元素的集合.
要保证元素的唯一性,需要重写hashcode()和equals()
TreeSet
不能使用普通的for循环进行排序
泛型
它的本质是参数化类型,将类型由原来的具体的类型参数化,然后在使用/调用时传入具体的类型
泛型类,泛型方法,泛型接口
优点:把运行时期的问题提前到了编译时期;避免类前值类型转换.
泛型类格式:
修饰符 class 类名<类型>{ }