目录
第二种:通过Map.entrySet使用iterator遍历key和value:
第三种:通过Map.entrySet遍历key和value:
第四种:通过Map.values()遍历所有的value,但不能遍历key:
1.Map
第一种:普遍使用,二次取值
public class Main {
System.out.println(“通过Map.keySet遍历key和value:”);
for (String key : map.keySet()) {
System.out.println("key= "+ key + " and value= " + map.get(key));
}
第二种:通过Map.entrySet使用iterator遍历key和value:
Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
第三种:通过Map.entrySet遍历key和value:
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
第四种:通过Map.values()遍历所有的value,但不能遍历key:
for (String v : map.values()) {
System.out.println("value= " + v);
}
2. Set:
(1)迭代遍历:
Set set = new HashSet();
Iterator it = set.iterator();
while (it.hasNext()) {
String str = it.next();
System.out.println(str);
}
(2)for循环遍历:
for (String str : set) {
System.out.println(str);
}
3.Map算法:
class Solution {
public int findShortestSubArray(int[] nums) {
Map<Integer, int[]> map=new HashMap<Integer, int[]>();
int le=nums.length;
for(int i=0;i<le;i++) {
int thisn=nums[i];
if(map.containsKey(thisn)) {
map.get(thisn)[2]++;
map.get(thisn)[1]=i;
}else {
map.put(thisn,new int[]{i,i,1});
}
}
int maxn=1,maxle=1;
for(Map.Entry<Integer, int[]> entry:map.entrySet()) {
int[] arr=entry.getValue();
if(maxle<arr[2]) {
maxle=arr[2];
maxn=arr[1]-arr[0]+1;
}else if(maxle==arr[2]){
maxn=arr[1]-arr[0]+1<maxn?arr[1]-arr[0]+1:maxn;
}
}
return maxn;
}
}