map迭代,需要使用map的key,问度娘后记录使用方法如下,希望更多人能学习到
public class MyUtil1 {
public static void
iteratorMap1(Map m) {
Set
set=mkeySet();//用接口实例接口
Iterator iter =
setiterator();
while (iterhasNext())
{//遍历二次,速度慢
String
k=(String)iternext();
Systemoutprintln(k +"="+ mget(k));
//Systemoutprintln(iternext()+"="+
mget(iternext()));
//因为指针判断下一个有没有值 iternext是当前对象
但是 mget(iternext())是下一个值
}
public static void iteratorMap(Map m){
Iterator
i=mentrySet()iterator();
while(ihasNext()){//只遍历一次,速度快
MapEntry
e=(MapEntry)inext();
Systemoutprintln(egetKey()+"="+egetValue());
//Systemoutprintln(esetValue(""));//返回value的值
}
}
var j={"a":"1","b":"2"};
就可以直接用jb或者j['b']
如果你的json是string拼的~~那就要:
var str = '{"a":"1","b":"2"}';
var j = eval("("+str+")");
也可以直接用jb或者j['b']
好像是,这个你可以将公钥私钥放到一个MAP中 在这个MAP中初始化随即产生器然后生成密钥对 我也刚接触 还没看懂 //生成密钥
public static Map<String,Object> initKey(String seed) throws Exception{
KeyPairGenerator keygen = KeyPairGeneratorgetInstance(ALGORITHM);
//初始化随机产生器
SecureRandom sr = new SecureRandom();
srsetSeed(seedgetBytes());
keygeninitialize(KEY_SIZE,sr);
KeyPair keys = keygengenKeyPair();
DSAPublicKey publicKey = (DSAPublicKey) keysgetPublic();
DSAPrivateKey privateKey = (DSAPrivateKey) keysgetPrivate();
Map<String,Object> map = new HashMap<String,Object>(2);
mapput(PUBLIC_KEY, publicKey);
mapput(PRIVATE_KEY, privateKey);
return map;
}
var key = "name";
var val = "aaa";
var o = {};
str = "o"+key+"='"+val+"'";
eval(str);
alert(oname);
//定义一个手机对象
let phone = {
name: "小米10",
color: '红色',
size: '1000200500',
price: '2999'
}
转成下面的字符串
"name=小米10&color=红色&size=1000200500&price=2999"
for in 循环,可以循环出对象里面的所有的key,(key就是属性名)
在ES6中新增了获取对象所有key的方法 -> ECMAScript2015 其实就是最新版本的javascript标准
Objectkeys(指定的对象),该方法可以获取指定对象的所有key,返回值是一个数组
Objectvalues(指定的对象),该方法可以获取指定对象的所有的value,返回值是一个数组
方法一
let arr = []
for(let key in phone){
consolelog(key);
arrpush(key+'='+phone[key]);
}
let str = arrjoin('&')
consolelog(str);
方法二
let keys = Objectkeys(phone)
let arr2 = keysmap(function(k){
return k+'='+phone[k]
})
let str2 = arr2join('&')
consolelog(str2);
方法三
let str3 = Objectkeys(phone)map(k=>[k,phone[k]]join('='))join('&')
consolelog(str3);
</script>
//定义一个字符串
let str = "name=小米10&color=红色&size=1000200500&price=2999"
//转成一个对象
/let phone = {
name: "小米10",
color: '红色',
size: '1000200500',
price: '2999'
}/
// 定义一个空对象
let obj = {}
strsplit('&')forEach(item=>{
let arr = itemsplit('=')
obj[arr[0]] = arr[1]
})
consolelog(obj);
用session中 public Enumeration getAttributeNames() ;
通过此方法获得一个枚举对象迭代后获得所有name(key),
给分别从session中get出来
在与你的value进行比较就能获得和此value相同的所有key了
安装好redis,进行了基本的 *** 作。包括对map list 和自定义对象的基本 *** 作。笔记都在代码注释里,直接上代码。
private Jedis jedis;
@Before
public void before() {
jedis = new Jedis("127001");
}
/
简单添加
/
@Test
public void test1() {
String name = "name";
String value = "qq";
jedisset(name, value);
Systemoutprintln("追加前:" + jedisget(name)); // 追加前:qq
// 在原有值得基础上添加,如若之前没有该key,则导入该key
jedisappend(name, "ww");
Systemoutprintln("追加后:" + jedisget(name)); // 追加后:qqww
jedisappend("id", "ee");
Systemoutprintln("没此key:" + jedisget(name));
Systemoutprintln("get此key:" + jedisget("id"));
}
/
mset 是设置多个key-value值 参数(key1,value1,key2,value2,,keyn,valuen) mget
是获取多个key所对应的value值 参数(key1,key2,key3,,keyn) 返回的是个list
/
@Test
public void test2() {
jedismset("name1", "aa", "name2", "bb", "name3", "cc");
Systemoutprintln(jedismget("name1", "name2", "name3"));
}
/
map
/
@Test
public void test3() {
Map<String, String> map = new HashMap<String, String>();
mapput("name", "fujianchao");
mapput("password", "123");
mapput("age", "12");
// 存入一个map
jedishmset("user", map);
// map key的个数
Systemoutprintln("map的key的个数" + jedishlen("user"));
// map key
Systemoutprintln("map的key" + jedishkeys("user"));
// map value
Systemoutprintln("map的value" + jedishvals("user"));
// (String key, String fields)返回值是一个list
List<String> list = jedishmget("user", "age", "name");
Systemoutprintln("redis中key的各个 fields值:"
+ jedishmget("user", "age", "name") + listsize());
// 删除map中的某一个键 的值 password
// 当然 (key, fields) 也可以是多个fields
jedishdel("user", "age");
Systemoutprintln("删除后map的key" + jedishkeys("user"));
}
/
list
/
@Test
public void test4() {
jedislpush("list", "aa");
jedislpush("list", "bb");
jedislpush("list", "cc");
Systemoutprintln(jedislrange("list", 0, -1));
Systemoutprintln(jedislrange("list", 0, 1));
Systemoutprintln(jedislpop("list")); // 栈顶
jedisdel("list");
}
/
自定义对象 User为例 id name
RedisTemplate 中有 序列化和反序列化
如:templategetStringSerializer()serialize("name")
/
@Test
public void test5() {
User user = new User();
usersetId(123);
usersetName("fighter");
// 存入一个 user对象
jedisset("user"getBytes(), SerializationUtilserialize(user));
// 获取
byte[] bs = jedisget("user"getBytes());
User desUser = (User) SerializationUtildeserialize(bs);
Systemoutprintln(desUsergetId() + ":" + desUsergetName());
}
对于自定义对象,需要进行序列化和反序列化:我这里提取出了一个工具类,
SerializationUtiljava
/
序列化就是将一个对象转换为二进制的数据流。这样就可以进行传输,或者保存到文件中。如果一个类的对象要想实现序列化,就必须实现serializable接口。在此接口中没有任何的方法,此接口只是作为一个标识,表示本类的对象具备了序列化的能力而已。
反序列化:将二进制数据流转换成相应的对象。
如果想要完成对象的序列化,则还要依靠ObjectOutputStream和ObjectInputStream,前者属于序列化 *** 作,而后者属于反序列化 *** 作。
/
import javaioByteArrayInputStream;
import javaioByteArrayOutputStream;
import javaioObjectInputStream;
import javaioObjectOutputStream;
public class SerializationUtil {
/
序列化
@param object
@return
/
public static byte[] serialize(Object object) {
ObjectOutputStream oos = null;
ByteArrayOutputStream baos = null;
try {
baos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(baos);
ooswriteObject(object);
byte[] bytes = baostoByteArray();
return bytes;
} catch (Exception e) {
}
return null;
}
/
反序列化
@param bytes
@return
/
public static Object deserialize(byte[] bytes) {
ByteArrayInputStream bais = null;
try {
bais = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bais);
return oisreadObject();
} catch (Exception e) {
}
return null;
}
}
还有都熟悉的User类。我只简单实用id和name,测试,也贴一下吧
public class User implements Serializable {
/
/
private static final long serialVersionUID = -1530813282496676263L;
private Integer id;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
thisid = id;
}
public String getName() {
return name;
}
public void setName(String name) {
thisname = name;
}
以上就是关于java怎么取map中的key值全部的内容,包括:java怎么取map中的key值、jquery中怎么通过key获取json的值不要遍历,要直接获取。 如:j={"a":"1","b":"2"},我要直接得到b的值、java 如果随机生成秘钥对并获取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)