1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap
(1)其中LinkedHashMap是有序的 怎么存怎么取出来
我们讲一下Map的增删改查功能:
/** Map集合的添加*/Map map = new HashMap();
map.put("星期一", "Monday");
map.put("星期六", "Sunday");
System.out.println(map);/** 通过建 获取值*/String string= map.get("星期六");
System.out.println(string);/** 通过建 修改值*/map.put("星期一", "Mon");
System.out.println(map);/** 通过建 删除值*/String remove= map.remove("星期六");
System.out.println(remove);
System.out.println(map);
}
以上就是Map的增删改查方法
2.Map的遍历
1.第一种:通过keySet()方法获取集合的所有建 存储在Set<>集合中
(1)增强for
(2)迭代器
Map map =new LinkedHashMap();
map.put("一", '1');
map.put("二", '2');
map.put("三", '3');
map.put("四", '4');
map.put("五", '5');
Set set = map.keySet();
(1)增强for
for (String string : set) {
System.out.println(string+" "+map.get(string));
}
(2)迭代器
Iterator iterator = set.iterator();
while(iterator.hasNext()){
String str=iterator.next();
Integer integer = map.get(str);
System.out.println(str+" "+integer);
}
第二种 通过 Map.Entry 在Map类设计时,提供了一个嵌套接口:Entry。 Entry将键值对的对应关系封装成了对象。
getKey()方法:获取Entry对象中的键
getValue()方法:获取Entry对象中的值
entrySet()方法:用于返回Map集合中所有的键值对(Entry)对象,以Set集合形式返回。
(1)增强for
Set> entries = map.entrySet();
for (Entry entry : entries) {
String str = entry.getKey();
Character character = entry.getValue();
System.out.println(str+" "+character);
}
(2)迭代器
Set> entries = map.entrySet();
Iterator> iterator = entries.iterator();
while(iterator.hasNext()){
Entry entry = iterator.next();
System.out.println(entry.getKey()+" "+entry.getValue());
}
3.Map之嵌套
我们在嵌套Map中传入引用类型Person 这里记得要重写equlas与HashCode方法
private static voidfun6() {
Map map1 = new LinkedHashMap();
map1.put(new Person("黄晓明", 40), "北京");
map1.put(new Person("AnlayBay", 36), "北京");
Map map2 = new LinkedHashMap<>();
map2.put(new Person("宋江",40), "梁山");
map2.put(new Person("林冲",40), "豹子头");
Map, String> map = new LinkedHashMap<>();
map.put(map1,"第一组");
map.put(map2,"第二组");for (Entry, String>zhu: map.entrySet()) {
String value=zhu.getValue();for (Entryentry : zhu.getKey().entrySet()) {
Person key=entry.getKey();
String value2=entry.getValue();
System.out.println(value+".."+key+".."+value2);
}
}
}/*** 迭代器遍历*/
private static voidfun5() {
Map map1 = new LinkedHashMap();
map1.put(new Person("黄晓明", 40), "北京");
map1.put(new Person("AnlayBay", 36), "北京");
Map map2 = new LinkedHashMap<>();
map2.put(new Person("宋江",40), "梁山");
map2.put(new Person("林冲",40), "豹子头");
Map, String> map = new LinkedHashMap<>();
map.put(map1,"第一组");
map.put(map2,"第二组");
Set> set =map.keySet();
Iterator> iterator =set.iterator();while(iterator.hasNext()){
Map next =iterator.next();
String string=map.get(next);
Set persons =next.keySet();
Iterator iterator2 =persons.iterator();while(iterator2.hasNext()){
Person next2=iterator2.next();
String string2=next.get(next2);
System.out.println(string2+" "+next2+" "+string);
}
}
}
这里我补充一个集合的工具类
Collections
public static voidmain(String[] args) {
ArrayList arrayList = new ArrayList<>();
arrayList.add("a");
arrayList.add("s");
arrayList.add("g");
arrayList.add("d");//排序
Collections.sort(arrayList);
System.out.println(arrayList);//翻转
Collections.reverse(arrayList);
System.out.println(arrayList);//打乱顺序
Collections.shuffle(arrayList);
System.out.println(arrayList);//二分查找
List integers = new ArrayList<>();
Collections.addAll(integers,1,2,3,4,5,7,8);
System.out.println(integers);int binarySearch = Collections.binarySearch(integers, 6);
System.out.println(binarySearch);//打乱shuffle
Collections.shuffle(integers);
System.out.println(integers);
}
今天大部分用代码展示了,不多做介绍,集合这一模块 无非就是增删改查 还有遍历,我在学习的过程中 基本每一个集合的方法我都会敲十遍加深印象