String val = entrygetValue()toString();
改成
Object obj = entrygetValue();
String val = "";
if (obj instanceof String[]){
String[] strs = (String[])obj;
val = ArraystoString(strs);//jdk15以上才支持,14的话就自己循环
}else{
val = objtoString();
}package netnietest; import javautilHashMap; import javautilIterator; import javautilMap; public class HashMapTest { private static Map<Integer, String> map=new HashMap<Integer,String>(); / 1HashMap 类映射不保证顺序;某些映射可明确保证其顺序: TreeMap 类 2在遍历Map过程中,不能用mapput(key,newVal),mapremove(key)来修改和删除元素, 会引发 并发修改异常,可以通过迭代器的remove(): 从迭代器指向的 collection 中移除当前迭代元素 来达到删除访问中的元素的目的。 / public static void main(String[] args) { mapput(1,"one"); mapput(2,"two"); mapput(3,"three"); mapput(4,"four"); mapput(5,"five"); mapput(6,"six"); mapput(7,"seven"); mapput(8,"eight"); mapput(5,"five"); mapput(9,"nine"); mapput(10,"ten"); Iterator<MapEntry<Integer, String>> it = mapentrySet()iterator(); while(ithasNext()){ MapEntry<Integer, String> entry=itnext(); int key=entrygetKey(); if(key%2==1){ Systemoutprintln("delete this: "+key+" = "+key); //mapput(key, "奇数"); //ConcurrentModificationException //mapremove(key); //ConcurrentModificationException itremove(); //OK } } //遍历当前的map;这种新的for循环无法修改map内容,因为不通过迭代器。 Systemoutprintln("-------nt最终的map的元素遍历:"); for(MapEntry<Integer, String> entry:mapentrySet()){ int k=entrygetKey(); String v=entrygetValue(); Systemoutprintln(k+" = "+v); } } }#include<map>#include<string>#include<iostream>int main(){map<string,int> words;map<string,int>::iterator it=wordsbegin();for(;it!=wordsend();++it)cout<<"key:"<<it->first<<"value:"<<it->second<<end1;return 0;} std::map<key, value> mymap;map<key,value>::iterator begiter = mymapbegin();map<key,value>::iterator enditer = mymapend();for(;begiter!=enditer;++begiter){// }尽管map的底层一般由红黑树实现,但map的迭代器还是使它具有了一个类似线性结构的访问接口。因此,所有适用于list等顺序容器的访问方法都可以用来对map进行访问。诸如for_each(),accumulate()等遍历区间的算法都可以用来遍历map。map的用法和Python中字典的用法是类似的。
Map是关联容器,按照特定的顺序存储由key和value值组合而成的元素。
key:常用于对元素进行排序和唯一标识
自动建立key-value的对应。key和value可以是任意需要的类型
容器中没有两个元素具有相同的key本篇文章是对在JS中Map和List的简单实现代码进行了详细的分析介绍 需要的朋友参考下 复制代码 代码如下: / MAP对象 实现MAP功能 接口 size() 获取MAP元素个数 isEmpty() 判断MAP是否为空 clear() 删除MAP所有元素 put(key value) 向MAP中增加元素(key value) remove(key) 删除指定KEY的元素 成功返回True 失败返回False get(key) 获取指定KEY的元素值VALUE 失败返回NULL element(index) 获取指定索引的元素(使用element key element value获取KEY和VALUE) 失败返回NULL containsKey(key) 判断MAP中是否含有指定KEY的元素 containsValue(value) 判断MAP中是否含有指定VALUE的元素 values() 获取MAP中所有VALUE的数组(ARRAY) keys() 获取MAP中所有KEY的数组(ARRAY) 例子 var map = new Map(); map put("key" "value"); var val = map get("key") …… / function Map() { this elements = new Array(); //获取MAP元素个数 this size = function() { return this elements length; }; //判断MAP是否为空 this isEmpty = function() { return (this elements length < ); }; //删除MAP所有元素 this clear = function() { this elements = new Array(); }; //向MAP中增加元素(key value) this put = function(_key _value) { this elements push( { key : _key value : _value }); }; //删除指定KEY的元素 成功返回True 失败返回False this remove = function(_key) { var bln = false; try { for (i = ; i < this elements length; i++) { if (this elements[i] key == _key) { this elements splice(i ); return true; } } } catch (e) { bln = false; } return bln; }; //获取指定KEY的元素值VALUE 失败返回NULL this get = function(_key) { try { for (i = ; i < this elements length; i++) { if (this elements[i] key == _key) { return this elements[i] value; } } } catch (e) { return null; } }; //获取指定索引的元素(使用element key element value获取KEY和VALUE) 失败返回NULL this element = function(_index) { if (_index < || _index >= this elements length) { return null; } return this elements[_index]; }; //判断MAP中是否含有指定KEY的元素 this containsKey = function(_key) { var bln = false; try { for (i = ; i < this elements length; i++) { if (this elements[i] key == _key) { bln = true; } } } catch (e) { bln = false; } return bln; }; //判断MAP中是否含有指定VALUE的元素 this containsValue = function(_value) { var bln = false; try { for (i = ; i < this elements length; i++) { if (this elements[i] value == _value) { bln = true; } } } catch (e) { bln = false; } return bln; }; //获取MAP中所有VALUE的数组(ARRAY) this values = function() { var arr = new Array(); for (i = ; i < this elements length; i++) { arr push(this elements[i] value); } return arr; }; //获取MAP中所有KEY的数组(ARRAY) this keys = function() { var arr = new Array(); for (i = ; i < this elements length; i++) { arr push(this elements[i] key); } return arr; }; } 复制代码 代码如下: / js实现list / function List() { this value = []; / 添加 / this add = function(obj) { return this value push(obj); }; / 大小 / this size = function() { return this value length; }; / 返回指定索引的值 / this get = function(index) { return this value[index]; }; / 删除指定索引的值 / this remove = function(index) { this value splice(index ); return this value; }; / 删除全部值 / this removeAll = function() { return this value = []; }; / 是否包含某个对象 / this constains = function(obj) { for ( var i in this value) { if (obj == this value[i]) { return true; } else { continue; } } return false; }; / 是否包含某个对象 / this getAll = function() { var allInfos = ; for ( var i in this value) { if(i != (value length )){ allInfos += this value[i]+" "; }else{ allInfos += this value[i]; } } alert(allInfos); return allInfos += this value[i]+" ";; }; } lishixinzhi/Article/program/Java/JSP/201311/20400
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)