① 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的值而已。