博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java基础Map接口+Collections工具类
阅读量:4356 次
发布时间:2019-06-07

本文共 4545 字,大约阅读时间需要 15 分钟。

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

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

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

/*         * Map集合的添加         */        Map
map = new HashMap
(); 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
map1 = new LinkedHashMap
(); map1.put(new Person("黄晓明", 40), "北京"); map1.put(new Person("AnlayBay", 36), "北京"); Map
map2 = new LinkedHashMap<>(); map2.put(new Person("宋江",40), "梁山"); map2.put(new Person("林冲",40), "豹子头"); Map
, String> map = new LinkedHashMap<>(); map.put(map1, "第一组"); map.put(map2, "第二组"); for (Entry
, String> zhu: map.entrySet()) { String value = zhu.getValue(); for (Entry
entry : zhu.getKey().entrySet()) { Person key = entry.getKey(); String value2 = entry.getValue(); System.out.println(value+".."+key+".."+value2); } } } /** * 迭代器遍历 */ private static void fun5() { Map
map1 = new LinkedHashMap
(); map1.put(new Person("黄晓明", 40), "北京"); map1.put(new Person("AnlayBay", 36), "北京"); Map
map2 = new LinkedHashMap<>(); map2.put(new Person("宋江",40), "梁山"); map2.put(new Person("林冲",40), "豹子头"); Map
, String> map = new LinkedHashMap<>(); map.put(map1, "第一组"); map.put(map2, "第二组"); Set
> set = map.keySet(); Iterator
> iterator = set.iterator(); while(iterator.hasNext()){ Map
next = iterator.next(); String string = map.get(next); Set
persons = next.keySet(); Iterator
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
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
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); }

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

 

转载于:https://www.cnblogs.com/hd976521/p/6253753.html

你可能感兴趣的文章
QT Creator 快速入门教程 读书笔记(三)
查看>>
bzoj 3811: 玛里苟斯【线性基+期望dp】
查看>>
Android的“再按一次返回键退出”的实现
查看>>
题目1014:排名
查看>>
团队开发1
查看>>
返回顶部
查看>>
Ext DateField控件 - 只选择年月
查看>>
Codeforces Round #342 (Div. 2) A. Guest From the Past(贪心)
查看>>
.Net基础
查看>>
Vue.js
查看>>
L2-001 紧急救援 [Dijkstra]
查看>>
【洛谷4219】[BJOI2014]大融合(线段树分治)
查看>>
深度学习面试题19:1*1卷积核的作用
查看>>
OData services入门----使用ASP.NET Web API描述
查看>>
python 解析html 时lxml跟beautifulSoup对比
查看>>
C# 获取系统开机时间
查看>>
ASP.NET Core 2.0 : 七.一张图看透启动背后的秘密
查看>>
wpf CollectionViewSource与ListBox的折叠、分组显示,及输入关键字 Filter的筛选
查看>>
【DDD】领域驱动设计实践 —— 框架实现
查看>>
SQL Server 2016新特性:DROP IF EXISTS
查看>>