1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap

(1)其中LinkedHashMap是有序的  怎么存怎么取出来

我们讲一下Map的增删改查功能:

        /*
         * Map集合的添加
         */
        Map<String, String> map = new HashMap<String, String>();
        map.put("星期一", "Monday");
        map.put("星期六", "Sunday");
        System.out.println(map);

        /*
         * 通过建   获取值
         */
        String string = map.get("星期六");
        System.out.println(string);

        /*
         * 通过建  修改值
         */
        map.put("星期一", "Mon");
        System.out.println(map);

        /*
         * 通过建  删除值
         */
        String remove = map.remove("星期六");
        System.out.println(remove);
        System.out.println(map);
    }

以上就是Map的增删改查方法

2.Map的遍历

1.第一种:通过keySet()方法获取集合的所有建 存储在Set<>集合中

(1)增强for

(2)迭代器

Map<String, Character> map =new LinkedHashMap<String, Character>();
        map.put("一", '1');
        map.put("二", '2');
        map.put("三", '3');
        map.put("四", '4');
        map.put("五", '5');
        Set<String> set = map.keySet();

(1)增强for

    for (String string : set) {
            System.out.println(string+" "+map.get(string));
        }

  (2)迭代器

    Iterator<String> iterator = set.iterator();
            while(iterator.hasNext()){
            String str=iterator.next();
            Integer integer = map.get(str);
            System.out.println(str+"   "+integer);
        }

第二种 通过 Map.Entry<K,V>    在Map类设计时,提供了一个嵌套接口:Entry。  Entry将键值对的对应关系封装成了对象。

getKey()方法:获取Entry对象中的键
          getValue()方法:获取Entry对象中的值
          entrySet()方法:用于返回Map集合中所有的键值对(Entry)对象,以Set集合形式返回。

(1)增强for

      Set<Entry<String, Character>> entries = map.entrySet();
            for (Entry<String, Character> entry : entries) {
                String str = entry.getKey();
                Character character = entry.getValue();
                System.out.println(str+"   "+character);

       }

(2)迭代器

    Set<Map.Entry<String, String>> entries = map.entrySet();
          Iterator<Map.Entry<String, String>> iterator = entries.iterator();
          while(iterator.hasNext()){
                Entry<String, String> entry = iterator.next();
                System.out.println(entry.getKey()+"  "+entry.getValue());
        }

3.Map之嵌套

    我们在嵌套Map中传入引用类型Person  这里记得要重写equlas与HashCode方法

    private static void fun6() {
        Map<Person, String> map1 = new LinkedHashMap<Person, String>();
        map1.put(new Person("黄晓明", 40), "北京");
        map1.put(new Person("AnlayBay", 36), "北京");

        Map<Person, String> map2 = new LinkedHashMap<>();
        map2.put(new Person("宋江",40), "梁山");
        map2.put(new Person("林冲",40), "豹子头");

        Map<Map<Person,String>, String> map = new LinkedHashMap<>();
        map.put(map1, "第一组");
        map.put(map2, "第二组");

        for (Entry<Map<Person,String>, String> zhu: map.entrySet()) {
            String value = zhu.getValue();
            for (Entry<Person, String> entry : zhu.getKey().entrySet()) {
                Person key = entry.getKey();
                String value2 = entry.getValue();
                System.out.println(value+".."+key+".."+value2);
            }
        }

    }
    /**
     * 迭代器遍历
     */
    private static void fun5() {
        Map<Person, String> map1 = new LinkedHashMap<Person, String>();
        map1.put(new Person("黄晓明", 40), "北京");
        map1.put(new Person("AnlayBay", 36), "北京");

        Map<Person, String> map2 = new LinkedHashMap<>();
        map2.put(new Person("宋江",40), "梁山");
        map2.put(new Person("林冲",40), "豹子头");

        Map<Map<Person,String>, String> map = new LinkedHashMap<>();
        map.put(map1, "第一组");
        map.put(map2, "第二组");

        Set<Map<Person,String>> set = map.keySet();
        Iterator<Map<Person, String>> iterator = set.iterator();
        while(iterator.hasNext()){
            Map<Person, String> next = iterator.next();
            String string = map.get(next);

            Set<Person> persons = next.keySet();
            Iterator<Person> iterator2 = persons.iterator();
            while(iterator2.hasNext()){
                Person next2 = iterator2.next();
                String string2 = next.get(next2);
                System.out.println(string2+"   "+next2+"    "+string);
            }
        }
    }

这里我补充一个集合的工具类

Collections

public static void main(String[] args) {
        ArrayList<String> arrayList = new  ArrayList<>();
        arrayList.add("a");
        arrayList.add("s");
        arrayList.add("g");
        arrayList.add("d");

        //排序
        Collections.sort(arrayList);
        System.out.println(arrayList);

        //翻转
        Collections.reverse(arrayList);
        System.out.println(arrayList);

        //打乱顺序
        Collections.shuffle(arrayList);
        System.out.println(arrayList);

        //二分查找
        List<Integer> integers = new ArrayList<>();
        Collections.addAll(integers, 1,2,3,4,5,7,8);
        System.out.println(integers);
        int binarySearch = Collections.binarySearch(integers, 6);
        System.out.println(binarySearch);

        //打乱shuffle
        Collections.shuffle(integers);
        System.out.println(integers);
    }

今天大部分用代码展示了,不多做介绍,集合这一模块  无非就是增删改查   还有遍历,我在学习的过程中  基本每一个集合的方法我都会敲十遍加深印象

Java基础Map接口+Collections工具类的更多相关文章

  1. Java基础Map接口+Collections

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  2. JAVA基础知识之Collections工具类

    排序操作 Collections提供以下方法对List进行排序操作 void reverse(List list):反转 void shuffle(List list),随机排序 void sort( ...

  3. JAVA基础学习day17--集合工具类-Collections

    一.Collection简述 1.1.Collection与Collections的区别 Collections是集合的静态工具类 Collection:是集合的顶级接口 二.Sort 2.1.sor ...

  4. JAVA基础学习day18--常用工具类

    一.System 1.1.概述 System 类包含一些有用的类字段和方法.它不能被实例化. 在 System 类提供的设施中,有标准输入.标准输出和错误输出流:对外部定义的属性和环境变量的访问:加载 ...

  5. JAVA Collections工具类sort()排序方法

    主要分析内容: 一.Collections工具类两种sort()方法 二.示例 一.Collections工具类两种sort()方法 格式一: public static <T extends ...

  6. java中List接口的实现类 ArrayList,LinkedList,Vector 的区别 list实现类源码分析

    java面试中经常被问到list常用的类以及内部实现机制,平时开发也经常用到list集合类,因此做一个源码级别的分析和比较之间的差异. 首先看一下List接口的的继承关系: list接口继承Colle ...

  7. JAVA ,Map接口 ,迭代器Iterator

    1.    Map 接口概述 java.util.Map 接口描述了映射结构, Map 接口允许以键集.值集合或键 - 值映射关系集的形式查看某个映射的内容. Java 自带了各种 Map 类. 这些 ...

  8. Java NIO Path接口和Files类配合操作文件

    Java NIO Path接口和Files类配合操作文件 @author ixenos Path接口 1.Path表示的是一个目录名序列,其后还可以跟着一个文件名,路径中第一个部件是根部件时就是绝对路 ...

  9. Java操作文件夹的工具类

    Java操作文件夹的工具类 import java.io.File; public class DeleteDirectory { /** * 删除单个文件 * @param fileName 要删除 ...

随机推荐

  1. 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...

  2. 感知机(perceptron)概念与实现

    感知机(perceptron) 模型: 简答的说由输入空间(特征空间)到输出空间的如下函数: \[f(x)=sign(w\cdot x+b)\] 称为感知机,其中,\(w\)和\(b\)表示的是感知机 ...

  3. spring mvc 4.3.2 + mybatis 3.4.1 + mysql 5.7.14 +shiro 幼儿园收费系统 之 消息管理

  4. iOS iOS9.0 的CoreLocation定位

    一.简介 iOS9.0如果当前处于前台授权状态,默认是不可以后台获取用户位置. 如果在前台授权下,让其能获取到后台定位,该怎么办 可以设置以下属性为YES,就可以继续获取后台位置,但是会出现蓝条 使用 ...

  5. spring boot 初试,springboot入门,springboot helloworld例子

    因为项目中使用了spring boot ,之前没接触过,所以写个helloworld玩玩看,当做springboot的一个入门例子.搜索 spring boot.得到官方地址:http://proje ...

  6. 第五百八十三天 how can I 坚持

    今天去看了个电影,日本动漫,第一次在电影院看日本动漫,<你的名字>,挺经典的.存在爱情吗?什么是爱情,哎.什么是人. 好像有点感冒了呢,说过自己很久没感冒后,往往就会感冒,这到底是怎么回事 ...

  7. MyBatis的foreach语句详解

    foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元素的属性主要有 item,index,collection,open,separator,close.it ...

  8. 修改jmeter jvm参数

    记录下常用的linux下 jmeter jvm参数修改,打开jmeter安装目录/bin/jmeter(非jmeter.sh) 1. 修改默认堆内存大小 #默认的 HEAP="-Xms512 ...

  9. jdbc 连接Oracle informix Mysql

    package com.basicSql; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Res ...

  10. Clang 与 LLVM

    我们在iOS调试中经常会看到Clang这个,那么Clang到底是什么呢?我们来简单了解一下. Clang是一个C.C++.OC语言的轻量级编译器.源代码发布于BSD协议下.Clang是由C++编写,基 ...