集合
前言:在java当中,java有两种集合结构,分为collection单列集合和map双列集合
集合框架Collection体系:
list集合特点:list添加的元素是有序,可重读,有索引的
list包含:
- arraylist,linekdlist:有序,可重复,有索引
set集合特点:set集合内添加的元素是无序,不重复,无索引的
set包含:
- hashset:无序,不重复无索引
- linkedhashset:有序,不重复,无索引
- treeset:按照大小默认升序,不重复,无索引
集合框架map体系:
map集合特点:map集合被称为双列集合,以键值对的方式出现,例如name=xiaoming
map实现类:
hashmap: 无序,不重复,无索引
treemap: 按照键的大小升序排序,不重复,无索引
linkedhashmap: 有序,不重复,无索引
map集合常用方法:
public class Mapdemo { public static void main(String[] args) { Map<String,Integer> map = new LinkedHashMap<>(); map.put("手机",123); map.put("手表",456); map.put("电瓶车",456); System.out.println(map.size()); //size获取map集合成员的数量 System.out.println(map.get("手机")); //get根据键获取值,类型由声明时的V来进行决定 System.out.println(map.remove("手表")); //remove会根据键删除整个键值对并且返回键值对 System.out.println(map.containsKey("手表")); //containsKey判断是否包含某个键 System.out.println(map.keySet()); // keyset获取全部的键 map.clear(); //清空map集合 System.out.println(map.isEmpty()); // isEmpty判断map集合是否为空 } }
map集合的遍历方式:
1,通过键找值
2,通过键值对整体遍历
3,lambda表达式进行遍历
一,键找值: 通过keyset获取所有的键集合,然后通过get获取对应的值
Map<String,Integer> map = new LinkedHashMap<>(); map.put("手机",123); map.put("手表",456); map.put("电瓶车",456); for (String s : map.keySet()) { System.out.println(s+"---->"+map.get(s)); }
打印出来的值------------------------------------------------------
- 手机---->123
- 手表---->456
- 电瓶车---->456
二,通过键值对整体遍历::通过entryset使集合的每个对象都封装成entry对象,然后entry内部又会吧每个元素封装成set键值对类型
public class Mapdemo { public static void main(String[] args) { Map<String,Integer> map = new LinkedHashMap<>(); map.put("手机",123); map.put("手表",456); map.put("电瓶车",456); Set<Map.Entry<String, Integer>> entries = map.entrySet(); for (Map.Entry<String, Integer> entry : entries) { System.out.println(entry.getKey()+"----"+entry.getValue()); //获取键 } } }
打印出来的值------------------------------------------------------
- 手机---->123
- 手表---->456
- 电瓶车---->456
三,通过lambda表达式进行遍历(简单)
map.forEach((k,v)->{ System.out.println(k+"----"+v); });
打印出来的值------------------------------------------------------
- 手机---->123
- 手表---->456
- 电瓶车---->456