在这里插入图片描述

1.Map集合的特点以及遍历方式

1.map集合的特点

1.Map中的数据是以键值对(key-value)的形式存储的,其中每个键都是2.唯一的,对应一个值。
3.Map中的键和值可以为任意对象,包括基本类型和自定义类型。
4.Map是一个无序的集合,值之间没有任何顺序关系,但是可以根据键来进行排序。
5.Map中的元素数量是可以动态变化的,可以进行添加、删除、修改操作。

2.map集合的遍历方式

1.使用for-each循环遍历Map集合

可以使用Map接口的entrySet()方法获取Map集合中所有的键值对,然后使用for-each循环遍历这些键值对。例如:

package com.niyin.map;

import java.util.HashMap;
import java.util.Map;
/**
 * 
 * @author 匿隐
 *使用map集合遍历
 */
public class niyinmap {

	
	public static void main(String[] args) {
		Map<String, Integer> map = new HashMap<>();
		map.put("apple", 1);
		map.put("banana", 2);
		map.put("orange", 3);

		for(Map.Entry<String, Integer> entry : map.entrySet()) {
		    System.out.println(entry.getKey() + " ----" + entry.getValue());
		}
	}
}

运行结果
运行结果

2.使用Iterator迭代器遍历Map集合

可以使用Map接口的entrySet()方法获取Map集合中所有的键值对,然后使用Iterator迭代器遍历这些键值对。例如:

package com.niyin.map;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
 * 
 * @author 匿隐
 *使用map集合遍历
 */
public class niyinmap {

	
	public static void main(String[] args) {
		Map<String, Integer> map = new HashMap<>();
		map.put("apple", 1);
		map.put("banana", 2);
		map.put("orange", 3);

//		for(Map.Entry<String, Integer> entry : map.entrySet()) {
////		    System.out.println(entry.getKey() + " ----" + entry.getValue());
//		}
		
		Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
		while(iterator.hasNext()) {
		    Map.Entry<String, Integer> entry = iterator.next();
		    System.out.println(entry.getKey() + " ---- " + entry.getValue());
		}
	}
}

运行结果

3.遍历Map集合中的所有键或所有值

可以使用Map接口的keySet()方法获取Map集合中所有的键,或使用values()方法获取Map集合中所有的值。例如:

package com.niyin.map;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
 * 
 * @author 匿隐
 *使用map集合遍历
 */
public class niyinmap {

	
	public static void main(String[] args) {
		Map<String, Integer> map = new HashMap<>();
		map.put("apple", 1);
		map.put("banana", 2);
		map.put("orange", 3);

//		for(Map.Entry<String, Integer> entry : map.entrySet()) {
////		    System.out.println(entry.getKey() + " ----" + entry.getValue());
//		}
//		
//		Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
//		while(iterator.hasNext()) {
//		    Map.Entry<String, Integer> entry = iterator.next();
//		    System.out.println(entry.getKey() + " -> " + entry.getValue());
//		}
		for(String key : map.keySet()) {
		    System.out.println(key + "-----" + map.get(key));
		}

		for(Integer value : map.values()) {
		    System.out.println(value);
		}
	}
}

运行结果在这里插入图片描述

2.Map集合的综合应用

1.用Map集合判断字符串里的字符出现了几次

package com.niyin.map;

import java.util.HashMap;
import java.util.Map;
/**
 * 
 * @author 匿隐
 *使用map集合判断,字符串里的字符出现了几次
 */
public class niyinmap1 {
public static void main(String[] args) {

	String str="ytjghjghgfjghjdgtnzhjkbjas";
	char[] charArray = str.toCharArray();
	Map<Character, Integer>map=new HashMap<>();
//	System.out.println(charArray);
for (char c : charArray) {
//	System.out.println(c);
	
	Integer integer = map.get(c);
	
	if (integer!=null) {
		map.put(c, integer+1);
	}else {
		map.put(c, 1);

	}
	
}
for (Map.Entry<Character,Integer> entry: map.entrySet() ) {
	System.out.println(entry.getKey()+"出现了"+entry.getValue()+"次");
}


}
}

运行结果
运行结果

3.泛型的应用

1.为什么要使用泛型?

1.Java中的集合都支持泛型,泛型的作用是指定集合中要存储的元素类型,通过使用泛型可以保证集合中只能存储指定类型的元素,避免了类型转换带来的风险和错误,增加了代码的可读性、可维护性和代码的安全性。

2.对于Map集合来说,通过泛型可以指定键和值的类型,这样可以在编译的时候发现类型不匹配的错误。例如,如果我们声明一个Map<String, Integer>类型的变量,那么这个Map集合只能存储键为String类型、值为Integer类型的元素,任何类型不匹配的操作都将在编译时被检测到,避免在运行时出现类型转换错误。

使用泛型还可以使代码更加简洁和可读,因为在代码中不需要进行显式的类型转换操作,而是直接使用指定的类型即可。
3.
总的来说,Java中的泛型为集合的类型安全性提供了支持,并提高了代码的可读性和可维护性。

4.集合工具的使用

1.用集合工具排序集合

package com.niyin.map;

import java.util.Arrays;
import java.util.Collection;
import java.util.List;

/**
 * 
 * @author 匿隐
 *集合工具
 */
public class niyin2map2 {
public static void main(String[] args) {
int[] intArr= {3,5,6,7,4};
Arrays.sort(intArr);
	
	System.out.println(intArr);
	
	String string = Arrays.toString(intArr);
	System.out.println(string);
	List<int[]> asList = Arrays.asList(intArr);
	
}
}

运行结果
运行结果

2.用集合工具排序之Collections

package com.niyin.map;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;


/**
 * 
 * @author 匿隐
 *集合工具
 */
public class niyin2map2 {
//public static void main(String[] args) {
//int[] intArr= {3,5,6,7,4};
//Arrays.sort(intArr);
//	
//	System.out.println(intArr);
//	
//	String string = Arrays.toString(intArr);
//	System.out.println(string);
//	List<int[]> asList = Arrays.asList(intArr);
//	
//}
public static void main(String[] args) {
	List<String>list=new ArrayList<String>();
	list.add("c");
	list.add("a");
	list.add("b");
	list.add("d");
	list.add("e");
	System.out.println("排序前");
	System.out.println(list);
	Collections.sort(list);
	System.out.println("排序后");
	System.out.println(list);
	
	
	
	
}	
	
	
}

运行结果运行结果
制作不易,望多鼓励!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐