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 ,Map接口 ,迭代器Iterator

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

  3. Java集合Map接口与Map.Entry学习

    Java集合Map接口与Map.Entry学习 Map接口不是Collection接口的继承.Map接口用于维护键/值对(key/value pairs).该接口描述了从不重复的键到值的映射. (1) ...

  4. Java 基础 Map 练习题

    第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队.如果该 年没有举办世界杯,则输出:没有举办世界杯. 附:世界杯冠军以及对应的夺冠年 ...

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

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

  6. Java集合——Map接口

    1.定义 Map用于保存存在映射关系<key,value>的数据.其中,key值不能重复(使用equals()方法比较),value值可以重复 2.方法 V  put(key,value) ...

  7. Java API —— Map接口

    1.Map接口概述         · 将键映射到值的对象         · 一个映射不能包含重复的键         · 每个键最多只能映射到一个值   2.Map接口和Collection接口的 ...

  8. Java基础集锦——利用Collections.sort方法对list排序

    要想对List进行排序,可以让实体对象实现Comparable接口,重写compareTo方法即可实现按某一属性排序,但是这种写法很单一,只能按照固定的一个属性排序,没变法变化.通过下面这种方法,可以 ...

  9. Java基础10 接口的继承与抽象类

    链接地址:http://www.cnblogs.com/vamei/archive/2013/03/31/2982240.html 作者:Vamei 出处:http://www.cnblogs.com ...

随机推荐

  1. Java基础知识系列——String

    最近晚上没有什么事(主要是不加班有单身),就复习了一下Java的基础知识.我复习Java基础知识主要是依据Java API和The Java™ Tutorials. 今天是第一篇,复习了一下Strin ...

  2. Winform混合式开发框架的特点总结

    Winform混合式开发框架,是一种支持分布式部署的应用模式,支持直接连接数据库,访问远程WCF服务,访问远程Web API服务等服务的综合性框架,根据不同的需求采用不同的数据接口,是一个适应性很广的 ...

  3. PHP 高效分布代码转的

    在<efficient pagination using mysql>中提出的clue方式. 利用clue方法,给翻页提供一些线索,比如还是SELECT * FROM `csdn` ord ...

  4. php操作Mysql 以及封装常用的函数 用外连接连接3个表的案例

    <?php header("content-type;text/html;charset=utf-8"); //数据库连接define('DB_HOST','localhos ...

  5. 去除Visual Studio引号中的内容和注释中出现的波浪下划线

    [描述] 使用vs2013,注释或者字符串常量中,经常会出现红色的波浪线,非常烦人. 注意,不是代码错误的那种波浪线,我觉得代码错误智能提示的波浪线还是有必要留着的,这样可以避免过多的编译来发现错误, ...

  6. Visual.Studio.2013.IDE+visual.studio.15.preview5 编译器

    硬盘版Visual.Studio.2013.IDE + visual.studio.15.preview5 编译器 使用前注意以下事项: 1.右键-管理员权限安装,VS15补丁.exe,补丁是VS15 ...

  7. 学习笔记 BIT(树状数组)

    痛定思痛,打算切割数据结构,于是乎直接一发BIT 树状数组能做的题目,线段树都可以解决 反之则不能,不过树状数组优势在于编码简单和速度更快 首先了解下树状数组: 树状数组是一种操作和修改时间复杂度都是 ...

  8. geotools

    http://blog.tigerlihao.cn/2010/01/geotools-based-web-map-service.html

  9. 手机连上wifi热点后自动弹窗的功能

    使用buildroot编译bind DNS服务器 用buildroot来制作文件系统很方便,编译出来的文件系统是直接可用的,不用添加脚本等麻烦的工作,很多的库和app都可以直接添加到文件系统里边,如常 ...

  10. Java——观察者模式实例

    观察者模式(订阅/发布模式) 作者: 代码大湿 代码大湿 Java中观察者模式中主要是Observerable类(被观察者),和Observer接口(观察者).下面是个简单的demo //被观察者 p ...