导航:首页 > 编程语言 > javahashmapgetkey

javahashmapgetkey

发布时间:2023-04-25 17:29:06

java怎么获取map的key

java 获取map中所有的key和value值

java.util.Iterator 对 collection 进行迭代的迭代器。

java.util.Iterator it = map.entrySet().iterator();
while(it.hasNext()){
java.util.Map.Entry entry = (java.util.Map.Entry)it.next();
entry.getKey() //返回对应的键
entry.getValue() //返回对应的值
}

以前遍历Map key-value比较习惯的方式是先获取Map中的所有key值,
然后根据key,依次从Map中去数据,基本方式如下:

Map<String,String> testData = new HashMap<String, String>();

Set<String> keys = testData.keySet();
for(String key :keys){
System.out.println(key+" "+testData.get(key));
}

上述其中是第一种方法,原来一直用上述方法主要是自己有点懒,有了一种方法后就觉得够用的了,今天看源码,发现还Map接口中还有一个Entry<K,V>的接口,对应的还有一个 Set<Map.Entry<K, V>> entrySet();方法。
也就是说其实Map中的每条key-value数据对应着一个Entry,这样的话遍历Map其实就是要取出每个Entry,也就有了第二种遍历方法:

Set<Entry<String, String>> entries = testData.entrySet();
for (Entry<String, String> entry : entries) {
System.out.println(entry.getKey()+":"+entry.getValue());
}

当少量的数据时,上述两种方法的效率是差不多的,当数据比较多时,第二种还是要比第一种快。

当然上述说的两种遍历针对的情况是遍历出key-value,如果是只想遍历key或value,大可不必用以上的方法了,Map中提供了Set<K> keySet()和Collection<V> values()。

② 得到 java map 的键 有哪些方法

public static void main(String[] args) {
Map map = new HashMap();
map.put("1", "aaaa");
map.put("2", "bbbb");
map.put("3", "cccc");
map.put("4", "dddd");
Iterator keyIteratorOfMap = map.keySet().iterator();
while (keyIteratorOfMap.hasNext()) {
Object key = keyIteratorOfMap.next();
System.out.println("map key【" + key.toString() + "】map value【"+ map.get(key)+"】");
}
/********************************************/
TreeMap treeMap = new TreeMap();
treeMap.put("1", "aaaa");
treeMap.put("2", "bbbb");
treeMap.put("3", "cccc");
treeMap.put("4", "dddd");
Iterator keyIteratorOfTreeMap = treeMap.keySet().iterator();
while (keyIteratorOfTreeMap.hasNext()) {
Object key = keyIteratorOfTreeMap.next();
System.out.println("treeMap key【" + key.toString() + "】value:"+ treeMap.get(key)+"】");
}
}
==========================================
将上面代码执行以下试试你就明白了。
HashMap它是没用顺序可言的,而TreeMap是有顺序的。 不过TreeMap的效率是没有HashMap的效率高的。如果你不需要数据的存放顺序建议使用HashMap,如果需要用到数据的顺序则考虑TreeMap。原理可以看一下哈希码值方面的东西。

③ java Map 根据Map的值(value)取键(key)

java根据Map的值(value)取键(key) 的实现方法有4种,分别为:

(1)使用for循环遍历

(2)使用Iterator迭代器

(3)使用KeySet迭代

(4)使用EnterySet迭代

下面为以上4种方法具体实现的代码:

1、使用for循环遍历

public static Object getKey(HashMap<Object,Object> map, String v) {

String key = "";

for (Map.Entry<String, Object> m :map.entrySet()) {

if (m.getValue().equals(v)) {

key = m.getKey();

}}

return key;

}

④ Java获取字符串中字母出现的个数

import java.util.HashMap;
import java.util.Set;
import java.util.concurrent.CyclicBarrier;
public class TestStrNumber {
private static String str1 = "sdfg,hellozx,sdfcv-waadfa,fsasdfxcvdf";
public static void main(String[] args) {
String ss=getUnmatchStr("hello");
getCharNum(ss);
}
public static void getCharNum(String ss){
String sb="";
for (int i = 0; i < ss.length(); i++) {
if (ss.charAt(i)!='-'&&ss.charAt(i)!=',') {
sb+=ss.charAt(i);
}
}
char[] cs=sb.toCharArray();
int oldNum=0;
HashMap<Character, Integer> map = new HashMap<Character, Integer>();
for (char c : cs) {
if (map.containsKey(c)) {
oldNum=map.get(c);
map.put(c, oldNum+1);
}else {
map.put(c, 1);
}
}
Set<Character> keys = map.keySet();
for(Character c:keys){
System.out.print(c+"(出现"+map.get(c)+"次)");
}
}
public static String getUnmatchStr(String s){
String str2="";
int startIndex=0;
int endIndex=0;
if (str1.contains(s)) {
startIndex = str1.indexOf(s);
endIndex=startIndex+s.length();
}
str2 = str1.substring(0, startIndex)+str1.substring(endIndex, str1.length());
return str2;
}
}

⑤ java 怎样通过hashmap的value得到key

楼上的说法不对啊,有时候就会遇到这样的情况!HashMap没有提供这样的功能,但是个人认为可以通过遍历 HashMap 来判断 value 从而得到Key
下面是个测试,仅仅是个人方法,有错还望高手提出!
import java.util.HashMap;
import java.util.Map;
public class Test
{
//通过value拿到key
public Object getKey(Map map,Object value)
{
for(Object key:map.keySet())
if(map.get(key).equals(value))
return key;
return null;
}
public static void main(String[] args)
{
Map<Object,Object> map=new HashMap<Object,Object>();
Test t=new Test();
A a=new A();
B b=new B();

map.put("1","a");
map.put("二",a);
map.put(3,b);
map.put(new B(),4);

System.out.println(t.getKey(map,"a"));
System.out.println(t.getKey(map,a));
System.out.println(t.getKey(map,b));
System.out.println(t.getKey(map,4));
}
}
class A
{
}
class B
{
public String toString(){
return "this is B";
}
}

⑥ Java中怎样遍历HashMap效率最高

方法一 在for-each循环中使用entries来遍历 这是最常见的并且在大多数情况下也专是最可取的遍历方式属。在键值都需要时使用。 Map map = new HashMap(); for (Map.Entry entry : map.entrySet()) { System.out.println("Key = " + entry.getKey() + ...

⑦ java hashmap 得到指定key的value

java hashmap 得到指定key的value的方法:

(Mapmap,Stringvalue)
{
Setset=map.entrySet();//新建一个不可重复的集合

ArrayListarr=newArrayList<>();//新建一个集合

Iteratorit=set.iterator();//遍历的类
while(it.hasNext())
{
Map.Entryentry=(Map.Entry)it.next();//找到所有key-value对集合

if(entry.getValue().equals(value))//通过判断是否有该value值
{

ints=(int)entry.getKey();//取得key值

arr.add(s);

}
}
returnarr;

⑧ 在java集合HashMap中如何替换某一个键值

不会存在相同的key,你直接put就替换了,不过是替换的是value的值而已。

阅读全文

与javahashmapgetkey相关的资料

热点内容
ps前往文件夹 浏览:694
信捷plc编程用哪个软件 浏览:939
vba导入文件 浏览:690
更新后版本英文怎么说 浏览:267
桌面云配置文件分离 浏览:505
iphone5如何升级4g网络 浏览:5
团购是在哪个app 浏览:897
打开多个word文档图片就不能显示 浏览:855
腾讯新闻怎么切换版本 浏览:269
app安装失败用不了 浏览:326
桌面文件鼠标点开会变大变小 浏览:536
手机误删系统文件开不了机 浏览:883
微信兔子甩耳朵 浏览:998
android蓝牙传文件在哪里 浏览:354
苹果6s软解是真的吗 浏览:310
c语言代码量大 浏览:874
最新网络卫星导航如何使用 浏览:425
以下哪些文件属于图像文件 浏览:774
zycommentjs 浏览:414
确认全血细胞减少看哪些数据 浏览:265

友情链接