《java疯狂讲义》collections中的工具类部分使用(自用)
2021/10/31 11:10:55
本文主要是介绍《java疯狂讲义》collections中的工具类部分使用(自用),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
package cn.Collection; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.EnumMap; import java.util.HashSet; import java.util.IdentityHashMap; import java.util.List; import java.util.Set; public class MapDemo { public static void main(String[]__) { //identityHashMap只有当key是引用的同一个对象的时候,才不会put进去这个Entry组,也就是放宽了这个插入的条件 IdentityHashMap<String, Integer> map=new IdentityHashMap<>(); map.put(new String("hhh"),123); map.put(new String("hhh"),123); map.put("wangwei",123); map.put("wangwei",123); System.out.println(map); //EnumMap在内部使用数组进行保存,所以非常高效,与enumset不同的是,EnumMap中不是使用静态方法来获得一个对象的 EnumMap<Season, Integer> EM=new EnumMap<>(Season.class); //Map集合的速度:HashMap和Hashtable差不多,但是HashMap还是略胜一筹,TreeMap有的好处就是有序 /* * HashSet和HashMap都是使用散列做法来加快查询的速度,在这两个容器的底层,都有一个所谓桶的结构 * 桶:通常情况下,一个桶内只能存储一个元素,但是当Hash值重复了之后,而equals判断又不为相等,则这个时候,就会形成链表去维护这个桶内的多个元素 * 容量(capacity):hash表中桶的数量 * 尺寸(size):记录当前结构中的元素 * 负载因子:szie/capacity得到一个目前桶内被填充的容量 * * * */ //对collections工具类的探查: //1.排序操作 /* * 翻转list集合中元素的顺序:static void reverse(List) ps:list类也就有ArrayList,LinkedList,Vector这三种了 * 对于list集合中随机洗牌:static void shuffle(List) * static void sort(List) ps:这里按照的顺序应该是根据compareTo比较得到的? * static void sort(List,comparator) * * */ //翻转方法 List<Integer> lt=new ArrayList<>(); lt.add(1); lt.add(2); lt.add(3); System.out.println("before: "+lt); Collections.reverse(lt); System.out.println(" and after: "+lt); //随机洗牌 lt.add(6); lt.add(4); lt.add(5); Collections.shuffle(lt); System.out.println(" shuffle : "+lt);//这里这个完全可以用到迷宫那里随机选择数组元素那里,当时还笨笨的用的什么Math.random //排序 List<A> ltA=new ArrayList<>(); ltA.add(new A(1)); ltA.add(new A(3)); ltA.add(new A(2)); System.out.println(ltA); //这里无法调用因为排序是需要实现comparable类 Collections.sort(ltA); Comparator<A> cmp=(A a,A b)-> { return a.value-b.value; }; Collections.sort(ltA,cmp); System.out.println(ltA); } //同步控制 List<Integer> list=Collections.synchronizedList(new ArrayList<>()); Set<Integer>set=Collections.synchronizedSet(new HashSet()); } //定义两个工具类 class A { public Integer value; A(Integer a){value=a;} @Override public String toString() { return value+""; } } class B implements Comparable<Integer> { public Integer value; B(Integer a){value=a;} @Override public int compareTo(Integer o) { return value-o; } public String toString() { return value+""; } }
这篇关于《java疯狂讲义》collections中的工具类部分使用(自用)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11有哪些好用的家政团队管理工具?
- 2025-01-11营销人必看的GTM五个指标
- 2025-01-11办公软件在直播电商前期筹划中的应用与推荐
- 2025-01-11提升组织效率:上级管理者如何优化跨部门任务分配
- 2025-01-11酒店精细化运营背后的协同工具支持
- 2025-01-11跨境电商选品全攻略:工具使用、市场数据与选品策略
- 2025-01-11数据驱动酒店管理:在线工具的核心价值解析
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide
- 2025-01-11不得不了解的高效AI办公工具API