作用: 当工作于多线程中的对象使用ThreadLocal维护变量时,threadLocal为每个使用该变量的线程分配一个独立的变量副本. 接口方法: protected T initialValue() //初始化数据.延迟调用方法,在线程第一次调用get或set时才执行,并且只执行1次.默认返回null. public T get() //获取当前线程的变量 public void set(T value) //设置当前线程的变量 public void remove() //删除当前线程的变…
Map排序的方式有很多种,两种比较常用的方式:按键排序(sort by key), 按值排序(sort by value).1.按键排序jdk内置的java.util包下的TreeMap<K,V>既可满足此类需求,向其构造方法 TreeMap(Comparator<? super K> comparator) 传入我们自定义的比较器即可实现按键排序. public class MapSortDemo { public static void main(String[] args)…
Map排序的方式有很多种,这里记录下自己总结的两种比较常用的方式:按键排序(sort by key), 按值排序(sort by value). 1.按键排序 jdk内置的java.util包下的TreeMap<K,V>既可满足此类需求,向其构造方法 TreeMap(Comparator<? super K> comparator) 传入我们自定义的比较器即可实现按键排序. 实现代码 public class MapSortDemo { public static void ma…
获取map的key和value的方法分为两种形式: map.keySet():先获取map的key,然后根据key获取对应的value: map..entrySet():同时查询map的key和value,只需要查询一次: 两者的性能比较可以查看map.keySet()和map.EntrySet()的比较. 以下是获取map的key和value,以及map里面的元素通过key或者value来比较大小并排序: 注意:当map的value值相等时,根据key值进行排序 public class Ma…
1.指针做函数参数 示例: package main //必须有个main包 import "fmt" func swap(a, b int) { a, b = b, a fmt.Printf("swap: a = %d, b = %d\n", a, b) } func main() { a, b := 10, 20 //通过一个函数交换a和b的内容 swap(a, b) //变量本身传递,值传递(站在变量角度) fmt.Printf("main: a =…