1.健值对数据排序
我们在写代码的过程中,肯定会把数据存放在数据结构中,而经常遇到需要对数据作排序的业务步骤,这样更方便我们后续处理数据,关于健值对的数据存储,在业务流程中,我
们组织一批大量的健值对数据,但数据是无序的,混乱的,假设,我们的key保存的是time 格式为 yyyyMMddHHmmss这个样子,然后我们想要对这批数据通过key来排序,正常的
话我们会自己去排序,或者通过实现comparator去排序,这样比较麻烦而且会影响程序执行的性能,其实jdk中实现的map数据结构,TreeMap,她的底层是实现了红黑二叉树的算
法,这个有兴趣的可以直接去看源码,好处是,将新元素加入到treeMap中时,她会去自动的对key进行自然升序排序。实用、简单。
简单的例子:
public class TreeMapSortTest {
// 声明一个treeMap
private static TreeMap<String,String> treeMap =null;
// 声明一个hashtable
private static Hashtable<String,String> hashtable =null;
// 在构造函数中,创建对象时对map进行初始化
public TreeMapSortTest(){
treeMap = new TreeMap<String,String>();
hashtable = new Hashtable<String, String>();
}
public static void main(String []args){
TreeMapSortTest test =new TreeMapSortTest();
test.treeMap.put("3","3");
test.treeMap.put("1","1");
test.treeMap.put("2","2");
test.hashtable.put("3","3");
test.hashtable.put("1","1");
test.hashtable.put("2","2");
for (Stringstr : test.treeMap.keySet()){
System.out.println("treeMap:"+test.treeMap.get(str));
}
for (Stringstr :test.hashtable.keySet()){
System.out.println("hashMap:"+test.hashtable.get(str));
}
}
}
结果:
treeMap:1
treeMap:2
treeMap:3
hashMap:3
hashMap:2
hashMap:1
map的key是set集合?
其map的内部排序其实并不像表面那么简单,必须要深刻理解源码,才能够在编程过程中随心所欲的写出漂亮的代码,关于map内部排序,我转载了另一篇详细的博文
2.使用set的特性去重
例:new set(list),list直接转换为set
3.在类中定义一个map,用来扩展不确定字段
很多时候,在写代码,一个类中的字段并不是百分之百的完全确定下来,这样就导致类结构不稳定,扩展难。一个简单的想法,在类中定义一个map对象,ok了,哈哈。
当你需要对类做字段扩展的时候,直接在对象中获取到map,然后将字段以健值对的形式put进去,完美。我觉得挺有意思,挺方便的。
4.static{}静态代码块
未完。。