Java基础Map接口+Collections
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的更多相关文章
- Java基础Map接口+Collections工具类
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- Java基础 - Map接口的实现类 : HashedMap / LinkedHashMap /TreeMap 的构造/修改/遍历/ 集合视图方法/双向迭代输出
Map笔记: import java.util.*; /**一:Collection接口的 * Map接口: HashMap(主要实现类) : HashedMap / LinkedHashMap /T ...
- java基础-Map集合
java基础-Map集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Map集合概述 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它 ...
- Java之Map接口(双列集合)
Map集合概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对象关系的对 ...
- JAVA ,Map接口 ,迭代器Iterator
1. Map 接口概述 java.util.Map 接口描述了映射结构, Map 接口允许以键集.值集合或键 - 值映射关系集的形式查看某个映射的内容. Java 自带了各种 Map 类. 这些 ...
- Java集合Map接口与Map.Entry学习
Java集合Map接口与Map.Entry学习 Map接口不是Collection接口的继承.Map接口用于维护键/值对(key/value pairs).该接口描述了从不重复的键到值的映射. (1) ...
- Java Core - Map接口
Map:是一组映射The java.util.Map interface represents a mapping between a key and a value. The Map interfa ...
- java中map接口hashMap以及Enty之间的用法和关系
java中map接口hashMap以及Enty之间的转换 首先说的是map接口: Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value ...
- Java基础十--接口
Java基础十--接口 一.接口的定义和实例 /* abstract class AbsDemo { abstract void show1(); abstract void show2(); } 8 ...
随机推荐
- Python高手之路【六】python基础之字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- Oracle分析函数入门
一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...
- [APUE]UNIX进程的环境(下)
一.共享库 共享库使得可执行文件中不再需要包含常用的库函数,而只需在所有进程都可存取的存储区中保存这种库例程的一个副本.程序第一次执行的时候或第一次调用某个库函数的时候,用动态链接方法将程序与共享库函 ...
- 【NLP】十分钟快览自然语言处理学习总结
十分钟学习自然语言处理概述 作者:白宁超 2016年9月23日00:24:12 摘要:近来自然语言处理行业发展朝气蓬勃,市场应用广泛.笔者学习以来写了不少文章,文章深度层次不一,今天因为某种需要,将文 ...
- Oracle 数据库知识汇总篇
Oracle 数据库知识汇总篇(更新中..) 1.安装部署篇 2.管理维护篇 3.数据迁移篇 4.故障处理篇 5.性能调优篇 6.SQL PL/SQL篇 7.考试认证篇 8.原理体系篇 9.架构设计篇 ...
- PHP获取上个月最后一天的一个容易忽略的问题
正常来说,PHP是有一个很方便的函数可以获取上个月时间的 strtotime (PHP 4, PHP 5, PHP 7) strtotime - 将任何英文文本的日期时间描述解析为 Unix 时间戳 ...
- Hibernate中事务声明
Hibernate中JDBC事务声明,在Hibernate配置文件中加入如下代码,不做声明Hibernate默认就是JDBC事务. 一个JDBC 不能跨越多个数据库. Hibernate中JTA事务声 ...
- 如何用Java类配置Spring MVC(不通过web.xml和XML方式)
DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置方式, XML看起来太累, 冗长繁琐. 还好借助于Servl ...
- web 前端(轮番插件)
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8& ...
- Java企业实训 - 01 - Java前奏
前言: 虽然个人专攻.NET方向,不过由于个人是干教育行业的,方方面面的东西,不能说都必须精通,但肯定多少都会涉及到. 一个菜鸟学员,从啥都不会,经过一步步学习,最后到企业上手掌管一个模块甚至一个项目 ...