黑马程序员_15MAP集合<K,V>

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

MAP

|__HashTable:底层用的是哈希表数据结构,键和值不可存入null,该集合线程同步,从JDK1.0开始

|__HashMap: 底层用的是哈希表数据结构,键和值允许为null,该集合线程不同步,从JDK1.2开始

|__TreeMap 底层用的是二叉树数据结构,线程不同步,可以给MAP集合中的键进行排序,其实Set底层就是用了Map集合

该集合存储键值对,并且保证键的唯一性

添加:

put()

putAll()

删除

clear()

remove(Obj key)

判断

containsKey(Obj key)

containsValue(value)

isEmpty()

获取

size()

values()

get(Obj Key)

entrySet()

keySet()

Collections: 是一个工具类

常用方法:

reverseOrder(传入比较器)//强行逆转传入的比较器

reverse(集合)//反转指定列表中的元素顺序

   fill()       //可以将list集合中的所有元素替换成指定元素

   replaceAll(集合,老值,新值)      //将传入集合中的指定元素替换成新值

   swap(集合,角标,角标)      //将传入集合中的2个元素互换


把数组变成List集合的好处:可以使用集合的思想和方法操作数组中的元素,蛋不可以使用集合的增删方法,因为数组的长度是固定的

如果进行增删操作,将发生UnsupportedOperationExpetion


高级for循环:对集合进行遍历,只能获取元素,不能对集合进行过多操作,但是有局限性,必须有被遍历的目标

     遍历数组时,传统for可以定义角标,更为方便

//格式
for(数据类型 变量名:被遍历的集合或者数组)
{
       执行语句
}


可变参数: ...

其实是一种数组参数的简写形式,不用每次手动建立数组对象,只要将操作的元素作为参数传递即可,隐式将这些参数封装了数组,但是可变参数...必须放在参数列表的最后面


---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

您可以使用以下代码将该XML转换为Map对象: ```java import java.io.StringReader; import java.util.HashMap; import java.util.Map; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class XmlToMap { public static void main(String[] args) throws Exception { String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> <java version=\"1.6.0_26\" class=\"java.beans.XMLDecoder\"> <object class=\"java.util.HashMap\"> <void method=\"put\"> <string>att_20160719180419281NEk9</string> <string>cx</string> </void> <void method=\"put\"> <string>att_20160511094248589ZKYq</string> <string>cnmm</string> </void> <void method=\"put\"> <string>att_20161018153614188aTus</string> <string>zsx;fj</string> </void> <void method=\"put\"> <string>att_20160422110906494XuEf</string> <null/> </void> <void method=\"put\"> <string>att_20160511130210612UULE</string> <string>fjyxapp;jjgjapp;wx;jd;dxjg;tb;wsjy</string> </void> <void method=\"put\"> <string>att_20160719180542840LnFm</string> <string></string> </void> <void method=\"put\"> <string>att_20160511130025203ssle</string> <string>zdgsszta</string> </void> <void method=\"put\"> <string>att_20160810131359346N0ra</string> <string>szjys</string> </void> <void method=\"put\"> <string>att_20160511130031927equg</string> <string></string> </void> <void method=\"put\"> <string>att_20160422110456036qp7Y</string> <null/> </void> <void method=\"put\"> <string>att_20160422110543585f7iI</string> <string>cpjbxx</string> </void> </object> </java>"; Map<String, String> map = xmlToMap(xml); System.out.println(map); } public static Map<String, String> xmlToMap(String xml) throws Exception { Map<String, String> map = new HashMap<>(); SAXReader reader = new SAXReader(); Document document = reader.read(new StringReader(xml)); Element root = document.getRootElement().element("object"); for (Element element : root.elements("void")) { Element keyElement = element.element("string"); Element valueElement = element.elements().get(1); String key = keyElement.getText(); String value = valueElement == null ? null : valueElement.getText(); map.put(key, value); } return map; } } ``` 该代码使用Dom4j库解析XML,并将其转换为Map对象。输出结果为: ``` {att_20160719180419281NEk9=cx, att_20160511094248589ZKYq=cnmm, att_20161018153614188aTus=zsx;fj, att_20160422110906494XuEf=null, att_20160511130210612UULE=fjyxapp;jjgjapp;wx;jd;dxjg;tb;wsjy, att_20160719180542840LnFm=, att_20160511130025203ssle=zdgsszta, att_20160810131359346N0ra=szjys, att_20160511130031927equg=, att_20160422110456036qp7Y=null, att_20160422110543585f7iI=cpjbxx} ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值