今天学习Collections工具类,map集合和泛型没有特难理解的概念,主要是学习一些方法的使用吧
*时间:*2022/4/15
Collections工具类
作用:
是集合的工具栏,其上面的所有方法皆为静态方法
常用方法:
方法 | 说明 |
---|---|
static void shuffle(List<?> list) | 随机打乱元素的顺序 |
static void sort(List list) | 从小到大排序 |
static void addAll(Collection<> coll, T… t ) | 给集合一次添加多个元素 |
static void sort(List list,Comparator<? super T> ) | 按照比较器排序 |
Comparator比较器
作用:
用来比较规则类型的大小
参数:
o1:代表将要比较的一个元素。
o2:代表已经比较完毕,已经拍好位置的元素。
返回值:int
如果返回值为正数:代表o1放在o2的后面。
如果返回值为负数:代表o1放在o2的前面。
如果返回值为0:位置不表,默认o1在o2前面。
结论:
o1在前 就是从小到大,o2在前 就是从大到小
泛型
形式:
< >这个写法就叫泛型,如:ArrayList
作用:
泛型用来代表某一种引用类型,如果在定义一种类型不知道是什么类型的情况下就可以定义成泛型
泛型在类上的形式:
public class 类名{
public void add(E e){
…
}
}
在创建对象时可以确定具体类型
泛型在方法的形式(了解)
public void 方法名(T t){
}
在调用方法时确认具体类型
方法在接口的形式(了解)
public interface 接口名{
void 方法名(T t);
}
1.在实现类上确定具体类型
2.在类上也不确定具体类型,依然保留泛型。在创建子类对象时在具体类型。
public class 类名 implements 接口名{
@Override
public void 方法(String s) {
}
}
public class 类名 implements 接口名{
@Override
public void 方法名(T t) {
}
}
泛型的好处
泛型可以避免运行时异常,把运行异常提前到编译期
泛型通配符
1.<?> :可以接受任意泛型类型。
2.<? extends X>:可以接受X和x的子类类型类型,也叫"泛型的上限"
3.<? super X>: 可以接受x和X父类泛型类型,也叫"泛型的下线"。
Map集合
Map常用方法:
方法 | 说明 |
---|---|
V put(K key, V value) | 添加键值对 |
V remove(Object key) | 根据键删除键值对 |
V get(Object key) | 根据键获取值 |
boolean containsKey(Object key) | 判断是否包含某个键 |
boolean containsValue(Object value) | 判断是否包含某个值 |
int size() | 获取集合长度 |
Map集合的遍历
1.keySet()键找值方式
HashMap<String,String> map = new HashMap<>();
map.put("秋雅","夏洛");
map.put("马冬梅","大春");
map.put("梦特娇","常远");
Set<String> set=map.keySet();
for(String s:set){
String v=map.get(s);
System.out.printlns(s+"="+v);
}
2.entrySet()键值对方式
HashMap<String,String> map = new HashMap<>();
map.put("秋雅","夏洛");
map.put("马冬梅","大春");
map.put("梦特娇","常远");
Set<Map.entry<String,String>> set=map.ebtrySet();
for(Map.entry<String,String> entry:set){
String k=entry.getKey();
String v=entry.getValue();
System.out.println(k+"="+v);
}
}
}
这俩会一种就好了
HashMap集合特点:
元素键不能重复 元素存取无序
LinkedHashMap集合特点
元素键不能重复 元素存取有序
总结
没啥好总结,把常用方法记住就好了!!!