导航:首页 > 编程语言 > javamap例子csdn

javamap例子csdn

发布时间:2022-05-23 23:56:19

java中线程安全的map有哪些

JAVA中线程安全的map有:Hashtable、synchronizedMap、ConcurrentHashMap。

java中map中线程安全怎么实现:

  1. 同步的map就是Hashtable, concurrenthashmap。

  2. 你看到的Hashtable就是直接在hashmap上加了个锁,concurrenthashmap就是分成多个分段锁。

⑵ 如何将map通过struts2转成json-CSDN论坛

这里有个例子,你看看
Action的完整代码

packagecn.ysh.studio.struts2.json.demo.action;

importjava.io.IOException;
importjava.io.PrintWriter;
importjava.util.HashMap;
importjava.util.Map;

importjavax.servlet.http.HttpServletResponse;

importorg.apache.struts2.ServletActionContext;

importnet.sf.json.JSONObject;

importcn.ysh.studio.struts2.json.demo.bean.User;

importcom.opensymphony.xwork2.ActionSupport;

{

/**
*
*/
=1L;

//将会被Struts2序列化为JSON字符串的对象
privateMap<String,Object>dataMap;

/**
*构造方法
*/
publicUserAction(){
//初始化Map对象
dataMap=newHashMap<String,Object>();
}

/**
*测试通过action以视图方式返回JSON数据
*@return
*/
publicStringtestByJSP(){
Useruser=newUser();
user.setId("123");
user.setName("JSONActionJSP");
user.setPassword("123");
user.setSay("Helloworld!");
JSONObjectjsonObject=newJSONObject();
jsonObject.accumulate("user",user);
jsonObject.accumulate("success",true);
//这里在request对象中放了一个data,所以struts的result配置中不能有type="redirect"
ServletActionContext.getRequest().setAttribute("data",jsonObject.toString());
returnSUCCESS;
};

/**
*测试通过action以Struts2默认方式返回JSON数据
*@return
*/
publicStringtestByAction(){
//dataMap中的数据将会被Struts2转换成JSON字符串,所以这里要先清空其中的数据
dataMap.clear();
Useruser=newUser();
user.setId("123");
user.setName("JSONActionStruts2");
user.setPassword("123");
user.setSay("Helloworld!");
dataMap.put("user",user);
//放入一个是否操作成功的标识
dataMap.put("success",true);
//返回结果
returnSUCCESS;
}

/**
*通过action是以传统方式返回JSON数据
*@throwsIOException
*/
publicvoiddoAction()throwsIOException{
HttpServletResponseresponse=ServletActionContext.getResponse();
//以下代码从JSON.java中拷过来的
response.setContentType("text/html");
PrintWriterout;
out=response.getWriter();
//将要被返回到客户端的对象
Useruser=newUser();
user.setId("123");
user.setName("JSONActionGeneral");
user.setPassword("JSON");
user.setSay("Hello,iamaactiontoprintajson!");
JSONObjectjson=newJSONObject();
json.accumulate("success",true);
json.accumulate("user",user);
out.println(json.toString());
//因为JSON数据在传递过程中是以普通字符串形式传递的,所以我们也可以手动拼接符合JSON语法规范的字符串输出到客户端
//以下这两句的作用与38-46行代码的作用是一样的,将向客户端返回一个User对象,和一个success字段
//StringjsonString="{"user":{"id":"123","name":"JSONActionGeneral","say":"Hello,iamaactiontoprintajson!","password":"JSON"},"success":true}";
//out.println(jsonString);
out.flush();
out.close();
}

/**
*Struts2序列化指定属性时,必须有该属性的getter方法,实际上,如果没有属性,而只有getter方法也是可以的
*@return
*/
publicMap<String,Object>getDataMap(){
returndataMap;
}

}

⑶ java中map有几种写法,一般怎样写,有什么区别吗

Map<String, Object> map = new HashMap<String, Object>();
Map<String, Object> ma = new HashMap<>();
简写,就是前面指定泛型,后面就可以省略。
HashMap<String, Object> m = new HashMap<>();
HashMap<String, Object> mm = new HashMap<String, Object>();
不建议这么写,一般是接口在左,实现类在右,实现依赖倒置原则。

⑷ java中Map的用法和含义

map就像是list差不多。都是一个已经定义的对象要想使用可以像线面这样直接定义使用就行,但是map和list有一点不同的是,当你往list里面放东西的时候list不会管你放进去的东西有没有重复,但是map的时候就会检查你放的东西有没有重复,重复的就不在放进去。。用法可以像下面的例子~
Map<String,UserVo>users=newHashMap<String,UserVo>();

⑸ java map 的用法

map是个接口

用都是用HasMap等实现Map接口的类

创建:Map<String,String> map = new HashMap<String,String>();
插入元素:map.put("1","a");
移除版元素: map.remove("1");
清空: map.clear();

具体参权照java API
java.uitl.HashMap

⑹ java 写一个方法返回值是Map类型

importjava.util.*;

publicclassdemo1{
publicstaticvoidmain(String[]args){
Scannerin=newScanner(System.in);
Stringarr=in.nextLine();

System.out.println(demo(arr));

}

publicstaticMap<String,List>demo(Stringarr)
{
String[]arrs=arr.split("");

Map<String,List>map=newHashMap<>();
List<String>list1=newLinkedList<>();
List<String>list2=newLinkedList<>();
List<String>list3=newLinkedList<>();
List<String>list4=newLinkedList<>();
for(inti=0;i<arr.length();i++){
if((arr.charAt(i)>='a'&&arr.charAt(i)<='z')||(arr.charAt(i)>='A'&&arr.charAt(i)<='Z')){
Charactercharacter=arr.charAt(i);
list1.add(character.toString());
}
elseif('0'<=arr.charAt(i)&&'9'>=arr.charAt(i)){

Charactercharacter=arr.charAt(i);
list3.add(character.toString());
}
elseif(''==arr.charAt(i)){
list2.add("");
}
else{
Charactercharacter=arr.charAt(i);
list4.add(character.toString());
}

}
map.put("character",list1);
map.put("space",list2);
map.put("other",list4);
map.put("number",list3);
returnmap;
}


}

刚刚给你写了一个简单的例子,其实正则比较方便

⑺ 谁用个简单例子讲讲java 的hashmap,通俗点讲,别用那些技术语言,那些不懂,只想知道那个理儿~

hashmap是一个存放数据的容器。数组也是一种容器,通过数据存取数据是通过数字下标来实现的。但开发的时候,用数字下标来取数据很不方便,冷不丁的谁知道第一个数据和第N个数据是什么东东?
所以,用一个有意义的词来代替下标,就会使数据更容易理解。例如你说的图书管理系统,一本书有出版社、作者、简介、字数、……等很多信息构成的数据,用ISBN号做这个数据的名字的话,就比用一个无意义的数字序号方便的多。在这里数据的名字称为键值(KEY),数据则被称为值(value)。
这种例用键值对(一对key,value)的形式存取数据的容器被称为Map。在Map中查找数据是通过key来进行的。
学过计算机编程的一定学过排序,通常学习的时候都是通过数组的排序来学习的,都应该知道数据量越大排序的时间越长。Hashmap就是一种加快了key的排序查找过程的容器。
可以这么认为:Hashmap对每个key取HASH值,然后把这个数据放到该HASH值的对应数组(或链表)中。这样,就用多个数组代替了一个数组,查找时先找到Key的HASH值对应的数据,然后在这个数组中查找这个KEY对应数据。最理想的情况下,每个KEY值的hash值都不一样,这种情况下查找数据是最高效的。最差的情况是每个key的HASH值都一样,这种情况就退化成了线性表,效率是最低的。

⑻ java中Map类有什么作用,具体怎么用呢

map是以键值对来存储数据的,例如:
Map map = new HashMap();
map.put("移动","10086");
String c = map.get("移动");
结果c="10086”;
简单来说,map就像我们手机的电话本,用map.put("移动","10086"),就是在电话本保存了移动的电话,然后当你想拿移动的电话时候就用String c = map.get("移动");就可以拿到电话号码了。其实学习结合生活实际比较容易理解,也学得快。

⑼ java中几种Map在什么情况下使用,并简单介绍原因及原理

一、Map用于保存具有映射关系的数据,Map里保存着两组数据:key和value,它们都可以使任何引用类型的数据,但key不能重复。所以通过指定的key就可以取出对应的value。Map接口定义了如下常用的方法:
1、void clear():删除Map中所以键值对。
2、boolean containsKey(Object key):查询Map中是否包含指定key,如果包含则返回true。
3、boolean containsValue(Object value):查询Map中是否包含指定value,如果包含则返回true。
4、Set entrySet():返回Map中所包含的键值对所组成的Set集合,每个集合元素都是Map.Entry对象(Entry是Map的内部类)。
5、Object get(Object key):返回指定key所对应的value,如Map中不包含key则返回null。
6、boolean isEmpty():查询Map是否为空,如果空则返回true。
7、Set keySet():返回该Map中所有key所组成的set集合。
8、Object put(Object key,Object value):添加一个键值对,如果已有一个相同的key值则新的键值对覆盖旧的键值对。
9、void putAll(Map m):将指定Map中的键值对复制到Map中。
10、Object remove(Object key):删除指定key所对应的键值对,返回可以所关联的value,如果key不存在,返回null。
11、int size():返回该Map里的键值对的个数。
12、Collection values():返回该Map里所有value组成的Collection。
Map中包含一个内部类:Entry。该类封装了一个键值对,它包含了三个方法:
1、Object getKey():返回该Entry里包含的key值。
2、Object getValeu():返回该Entry里包含的value值。
3、Object setValue(V value):设置该Entry里包含的value值,并返回新设置的value值。

二、HashMap和Hashtable实现类:
1、HashMap与HashTable的区别:
1) 同步性:Hashtable是同步的,这个类中的一些方法保证了Hashtable中的对象是线程安全的。而HashMap则是异步的,因此HashMap中的对象并不是线程安全的。因为同步的要求会影响执行的效率,所以如果你不需要线程安全的集合那么使用HashMap是一个很好的选择,这样可以避免由于同步带来的不必要的性能开销,从而提高效率。
2) 值:HashMap可以让你将空值作为一个表的条目的key或value,但是Hashtable是不能放入空值的。HashMap最多只有一个key值为null,但可以有无数多个value值为null。
2、性能:HashMap的性能最好,HashTable的性能是最差(因为它是同步的)
3、注意:
1)用作key的对象必须实现hashCode和equals方法。
2)不能保证其中的键值对的顺序
3)尽量不要使用可变对象作为它们的key值。

三、LinkedHashMap:
它的父类是HashMap,使用双向链表来维护键值对的次序,迭代顺序与键值对的插入顺序保持一致。LinkedHashMap需要维护元素的插入顺序,so性能略低于HashMap,但在迭代访问元素时有很好的性能,因为它是以链表来维护内部顺序。

四、TreeMap:
Map接口派生了一个SortMap子接口,SortMap的实现类为TreeMap。TreeMap也是基于红黑树对所有的key进行排序,有两种排序方式:自然排序和定制排序。Treemap的key以TreeSet的形式存储,对key的要求与TreeSet对元素的要求基本一致。
1、Map.Entry firstEntry():返回最小key所对应的键值对,如Map为空,则返回null。
2、Object firstKey():返回最小key,如果为空,则返回null。
3、Map.Entry lastEntry():返回最大key所对应的键值对,如Map为空,则返回null。
4、Object lastKey():返回最大key,如果为空,则返回null。
5、Map.Entry higherEntry(Object key):返回位于key后一位的键值对,如果为空,则返回null。
6、Map.Entry lowerEntry(Object key):返回位于key前一位的键值对,如果为空,则返回null。
7、Object lowerKey(Object key):返回位于key前一位key值,如果为空,则返回null。
8、NavigableMap subMap(Object fromKey,boolean fromlnclusive,Object toKey,boolean toInciusive):返回该Map的子Map,其key范围从fromKey到toKey。
9、SortMap subMap(Object fromKey,Object toKey );返回该Map的子Map,其key范围从fromkey(包括)到tokey(不包括)。
10、SortMap tailMap(Object fromkey ,boolean inclusive):返回该Map的子Map,其key范围大于fromkey(是否包括取决于第二个参数)的所有key。
11、 SortMap headMap(Object tokey ,boolean inclusive):返回该Map的子Map,其key范围小于tokey(是否包括取决于第二个参数)的所有key。

五、WeakHashMap:
WeakHashMap与HashMap的用法基本相同,区别在于:后者的key保留对象的强引用,即只要HashMap对象不被销毁,其对象所有key所引用的对象不会被垃圾回收,HashMap也不会自动删除这些key所对应的键值对对象。但WeakHashMap的key所引用的对象没有被其他强引用变量所引用,则这些key所引用的对象可能被回收。WeakHashMap中的每个key对象保存了实际对象的弱引用,当回收了该key所对应的实际对象后,WeakHashMap会自动删除该key所对应的键值对。

六、IdentityHashMap类:
IdentityHashMap与HashMap基本相似,只是当两个key严格相等时,即key1==key2时,它才认为两个key是相等的 。IdentityHashMap也允许使用null,但不保证键值对之间的顺序。

七、EnumMap类:
1、EnumMap中所有key都必须是单个枚举类的枚举值,创建EnumMap时必须显示或隐式指定它对应的枚举类。
2、EnumMap根据key的自然顺序,即枚举值在枚举类中定义的顺序,来维护键值对的次序。
3、EnumMap不允许使用null作为key值,但value可以。望采纳,谢谢。

⑽ java集合定义map

Map接口映射唯一键的值。一个关键是,要使用在日后检索值对象。

给定一个键和一个值,可以在一个Map对象存储的值。后的值被存储时,可以使用它的键检索。

抛出一个NoSuchElementException异常,是因为调用映射不存在的项目。

当一个对象是在映射上的元素不兼容抛出一个ClassCastException异常。

NullYiierException异常被抛出,如果试图使用一个空对象。

当试图改变一个不可修改的Map,则抛出一个UnsupportedOperationException异常。

SN

方法与描述

void clear( )

移除调用映射的所有键/值对。

boolean containsKey(Object k)

返回true如果调用映射包含k作为重点。否则,返回false。

boolean containsValue(Object v)

返回true如果映射包含v作为一个值。否则,返回false。

Set entrySet( )

返回一组包含在地图中的条目。该集合包含类型Map.Entry对象。这种方法提供了一组视图调用地图。

boolean equals(Object obj)

如果obj是一个Map返回true,并且包含相同的条目。否则,返回false。

Object get(Object k)

返回与k关联的值。

int hashCode( )

返回调用映射的哈希代码。

boolean isEmpty( )

如果调用映射为空返回true。否则,返回false。

Set keySet( )

返回一个集,其中包含调用映射的键。这种方法提供了一组视图中调用映射的键。

Object put(Object k, Object v)

放入调用映射中的条目,覆盖与键相关联的任何一个值。键和值分别为k和v。如果不已经存在键返回null。否则,将返回关联键的前一个值。

void putAll(Map m)

把从m所有条目放进入此映射。

Object remove(Object k)

删除其关键字等于k中的条目。

int size( )

返回在映射上的键/值对的数目。

Collection values( )

返回包含在映射中的值的集合。这种方法提供了一个集合视图在映射中的值。

例子:

映射有其不同的类实现,比如HashMap。下面是例子来说明映射功能:

Map Elements
{Mahnaz=31, Ayan=12, Daisy=14, Zara=8}

阅读全文

与javamap例子csdn相关的资料

热点内容
你为什么学plc编程 浏览:828
网络连接没了 浏览:991
代码打印pdf 浏览:563
扣扣红包网络连接失败 浏览:301
win10商城下载文件在哪 浏览:975
系统制作镜像文件 浏览:249
苹果手机指纹贴有危险 浏览:329
哪里有高中生学编程的 浏览:984
二零一八版cad的文件布局 浏览:181
js右键选中treeview 浏览:904
linux系统交换分区的文件格式是 浏览:218
数控机床编程里u5代表什么意思 浏览:202
da14580可以跑linux 浏览:819
电脑文件后缀名编程有哪些 浏览:832
怎么画网络狗头 浏览:452
javagetfoldername 浏览:994
设置小爱同学下载什么app 浏览:50
中行网银网络错误 浏览:773
华为手机开机密码 浏览:99
手机怎么连接学校网络 浏览:431

友情链接