目录
一、map集合的特点
二、遍历
三、字符串出现的次数
四、泛型
五、集合之间的相互转换
六、工具类
一、map集合的特点
1.map集合的特点:键值对
二、遍历
拿到key,再拿值, 拿到映射关系:键值都有了
//2.拿到映射关系 Set> entrySet = map.entrySet(); for (Entry entry : entrySet) { System.out.println("键:"+entry.getKey()+ "值"+entry.getValue()); }
三、字符串出现的次数
代码如下:
package com.shishirong.map;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
public class Demo2 {
public static void main(String[] args) {
String s = "alkjdlkasjdlkjsalkdjsalkjdlksajdlkjsadlalkjdsalkjsadlksajdlk";
char[] arr = s.toCharArray();
Map map = new TreeMap<>();
for (char c : arr) {
Integer value = map.get(c);
if(value == null) {
map.put(c, 1);
}
else {
map.put(c, value+1);
}
// System.out.println(value);
}
Set> entrySet = map.entrySet();
// list, (x,y) -> x.getName().compareTo(y.getName())
for (Entry entry : entrySet) {
// System.out.println(entry.getValue());
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}
}
运行结果如下:
四、泛型
泛型出现之前:不健壮代码,会在运行时才会把错误暴露出来
泛型出现之后:将潜在的问题暴露出来 早预防早治疗 它会将运行期出现的异常转换为编译期的错误
案列:没有加泛型时
它这里增加一个String类型是可以通过编译期的
但不能通过运行期
结果如下:
接下来就是增加泛型时
它会直接在你编译期的时候就提示你这里不能这样写
五、集合之间的相互转换
1.数组转成集合,本质上依然是一个数组,长度是不可变的
2.集合与数组所具备的方法是不一样的,如对于数组而言,就没有判断内部包含那个元素
public class Demo4 {
public static void main(String[] args) {
String[] arr = {"a","b","c","d","e"};
List list = Arrays.asList(arr);
// Object[] array = list.toArray();
list.add("f");
// java.lang.UnsupportedOperationException
System.out.println(list.size());
}
}
他这里会运行报错,原因就是数组转成集合,它本质上还是一个数组,它的长度是不可变的
六、工具类
对于工具类其他方法的应用
sort
tostring
package com.shishirong.map;
import java.util.ArrayList;
import java.util.Arrays;
public class Demo5 {
public static void main(String[] args) {
// java.util.List list = new ArrayList<>();
// list.add("b");
// list.add("c");
// list.add("a");
// System.out.println(list);
// java.util.Collections.sort(list);
// System.out.println(list);
// //这里面的x,y指的是集合中的元素
// java.util.Collections.sort(list, (x,y) -> y.compareTo(x));
// System.out.println(list);
java.util.List list = new ArrayList<>();
list.add(new Person("b", 16));
list.add(new Person("c", 18));
list.add(new Person("a", 19));
System.out.println(list);
// java.util.Collections.sort(list);
java.util.Collections.sort(list, (x,y) -> x.getName().compareTo(y.getName()));
System.out.println(list);
Integer[] arr = {3,5,4,1,6,8};
Arrays.sort(arr, (x,y) -> y - x);
System.out.println(Arrays.toString(arr));
}
}
class Person implements Comparable{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
@Override
public int compareTo(Person o) {
return o.getName().compareTo(this.name);
}
}
这里需要大家运行代码自行理解为上策



