目录
1.双列集合
2.map的三种遍历方式:
1.键找值
2.键值对
3.lambda遍历map
3.HashMap
例子:统计字符出现次数
4.LinkedHashMap
5.TreeMap
6.可变参数
7.Collections:
1.双列集合
双列集合特点:
定义Map<String,String>,Map的put添加元素时候,如果一个键对应两个及以上,则会把前面的给覆盖。他们的返回值是String。返回的是被覆盖的值。返回值给定义的数据类型是一样的。
删除时返回的是值。
2.map的三种遍历方式:
1.键找值
import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class Main {public static void main(String[] args) {//创建map对象Map<String,String> map=new HashMap<>();//添加元素map.put("111","一一一");map.put("222","二二二");map.put("333","三三三");Set<String> keys = map.keySet();for (String key : keys) {// System.out.println(key);String v=map.get(key);System.out.println(key+"===="+v);}}
}
2.键值对
map.entrySet()是获得键值对对象的意思
import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class Main {public static void main(String[] args) {//键值Map<String,String> map=new HashMap<>();map.put("111","一一一");map.put("222","二二二");map.put("333","三三三");Set<Map.Entry<String, String>> entries = map.entrySet();//是获得键值对对象的意思,将其放入Set集合中for (Map.Entry<String, String> entry : entries) {String key = entry.getKey();String value = entry.getValue();System.out.println(key+"===="+value);}}
}
3.lambda遍历map
简化:
map.forEach((key,value)-> System.out.println(key+"="+value));
3.HashMap
指红黑树!!
例子:统计字符出现次数
扩展:修改输出格式
Lambda遍历:
4.LinkedHashMap
双向链表,存储和打印的顺序是一样的
5.TreeMap
public class Main {public static void main(String[] args) {
//
// TreeMap<Integer, String> map = new TreeMap<>(new Comparator<Integer>() {
// public int compare(Integer o1, Integer o2) {
// return o1.compareTo(o2);
// }
// });TreeMap<Integer, String> map= new TreeMap<>((o1, o2) -> o1.compareTo(o2));map.put(5, "123");map.put(6, "456");map.put(3, "789");System.out.println(map);}
}
结果如下:
总结:
6.可变参数
可变参数:方法形参的个数是可以发生变化的。0,1,2,3,4,5
本质上就是用可变参数代替数组
1.可变参数本质上就是一个数组
2.作用:在形参中接收多个数据
3.格式:数据类型...参数名称(三个点)
注意:
形参列表中可变参数只能有一个(int...a)
可变参数(int...a)必须放在形参(int b)列表的最后面
public class Main {public static void main(String[] args) {int sum=getSum(1,2,3,4,5,6,7,8,9,10);System.out.println(sum);}public static int getSum(int...args){int sum=0;for (int i : args) {//是值sum+=i;}return sum;}
}
7.Collections:
java.util.collections:是集合工具类
作用:Collections不是集合,而是集合的工具类。
前两个方法的例子:
public class Main {public static void main(String[] args) {ArrayList<String> list=new ArrayList<>();Collections.addAll(list,"ad","df","ty","kdh","fjd");System.out.println(list);Collections.shuffle(list);System.out.println(list);}
}
结果如下: