java怎么取map中的key值

java怎么取map中的key值,第1张

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 如果随机生成秘钥对并获取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9311014.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存