JAVA基础-集合进阶

集合

前言:在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

 

 

发表回复

电子邮件地址不会被公开。必填项已用 * 标注