栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Map集合框架的使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Map集合框架的使用

Map集合概述

在javaWEB阶段做网页分页的时候用的比较多

public interface Map

k:表示的键
v:表示的值
将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
Map接口 是一个泛型接口 是以键值对的形式存储数据,K表示键 V表示值,K不可以重复
键值对
顾名思义就是一个K对应一个值
举例:电话簿,身份证
电话簿的存储方式:
(颜子凡有很多女朋友有小丽,小美,小红,小绿等)
他需要将以上的女朋友进行存储(V只可以重复)
如果K重复了 相当他就会分不清数谁是谁(K值永远不会重复)

名称(K)电话(V)
小丽1008616
小美1000010
小红119119
小绿11086

身份证存储方式

名称(k)身份证(V)
admin61021457895412
gqk61021457819212
jack61021453124112

可以key值来去查询出value值

HashMap介绍
public class HashMap
      extends 
      AbstractMap
      implements 
      Map, 
      Cloneable, 
      Serializable

基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。

构造方法
方法名称方法描述
public HashMap()构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap

创建一个HashMap的对象

package com.scy.demo;
import java.util.HashMap;
import java.util.Map;
public class MapDemo1 {
	public static void main(String[] args) {
		Map map = new HashMap();
		System.out.println(map);
	}
}
Map集合的常用方法
方法名称方法描述
V put(K key, V value)向Map集合中存放元素(K 不重复)
public V get(Object key)根据key值(指定键)获取对应的vlue值
public boolean isEmpty()判断集合是否为空
public Set keySet()返回key值的Set试图
public Set> entrySet()返回此映射关系的Set试图
public int size()返回集合中存储元素的个数
public V remove(Object key)根据key移除对应的value值
public boolean containsKey(Object key)判断集合中是否包含key值
package com.scy.demo;
import java.util.HashMap;
import java.util.Map;
public class MapDemo2 {
	public static void main(String[] args) {
		Map map = new HashMap();//创建Map对象
		//在集合中添加元素
		map.put("bookname", "javaOOP");
		map.put("author", "gqk");
		map.put("price", 150);
		System.out.println(map);
		System.out.println(map.size());//输出集合中元素的个数
		System.out.println(map.isEmpty());//判断集合是否为空
		
		Object obj = map.get("bookname");
		System.out.println(obj);
		map.remove("price");//根据key移除对应的value
		System.out.println(map);
	}
}

以上提到 集合中如果没有泛型则表示泛型为Object 所以接收返回值的时候 用的是Object 但是一般开发都会在集合中添加泛型

泛型的概念

泛型:标签

举例:超市购物架上很多瓶子,每个瓶子装的是什么,有标签

中药店,每个抽屉外面贴着标签

集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以在JDK1.5之前只能把元素类型设计为Object,JDK1.5之后使用泛型来解决。因为这个时候除了元素的类型不确定,其他的部分是确定的,例如关于这个元素如何保存,如何管理等是确定的,因此此时把元素的类型设计成一个参数,这个类型参数叫做泛型。Collection,List,ArrayList 这个就是类型参数,即泛型

从JDK1.5以后,Java引入了“参数化类型(Parameterized type)”的概念,允许我们在创建集合时再指定集合元素的类型,正如:List,这表明该List只能保存字符串类型的对象。

所谓泛型,就是允许在定义类、接口时指定类型参数(我们称为类型形参),这个类型形参将在使用时(例如,继承或实现这个接口,用这个类型声明变量、创建对象时)确定(即传入实际的类型参数,也称为类型实参)。JDK1.5改写了集合框架中的全部接口和类,为这些接口、类增加了泛型支持,从而可以在声明集合变量、创建集合对象时传入类型实参。

泛型:程序设计的时候或者程序声明的时候 不能确定程序的类型 jdk1.5之前都是用Object解决,之后引入泛型的概念,可以指定泛型(但是不能确定类型)
是在创建对象和声明对象的时候 才去确定泛型的具体类型(比如 Collection E此时在声明的时候并不知道类型就是一个简单的泛型,创建对象的时候可以给泛型指定具体类型)

泛型案例:

E类型没有指定

package com.scy.demo;

public class Test {
	private E e;

	public E getE() {
		return e;
	}

	public void setE(E e) {
		this.e = e;
	}
}

创建对象的时候为泛型指定具体类型

package com.scy.demo;

public class MailTest {
	public static void main(String[] args) {
		//创建Test对象(此时代码报警告了 原因是此类上面声明的时候添加了泛型)
		//Test test = new Test();
		Test test = new Test();
		test.setE("HelloWorld");
		String str = test.getE();
		System.out.println(str);
	}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/281235.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号