初入java day13

TreeSet和TreeMap
TreeMap 和 TreeSet 是 Java Collection Framework 的两个重要成员,其中 TreeMap 是 Map 接口的常用实现类,而 TreeSet 是 Set 接口的常用实现类。虽然TreeMap 和 TreeSet 实现的接口规范不同,但 TreeSet 底层是通过 TreeMap 来实现的(如同HashSet底层是是通过HashMap来实现的一样),因此二者的实现方式完全一样。而 TreeMap 的实现就是红黑树算法。

相同点:
1.TreeMap和TreeSet都是有序的集合,也就是说他们存储的值都是排好
2.TreeMap和TreeSet都是非同步集合,因此他们不能在多线程之间共享,不过可以使用方法Collections.synchroinzedMap()来实现同步
3.运行速度都要比Hash集合慢,他们内部对元素的操作时间复杂度为O(logN),而HashMap/HashSet则为O(1)。
不同点:
1.最主要的区别就是TreeSet和TreeMap分别实现Set和Map接口
2.TreeSet只存储一个对象,而TreeMap存储两个对象Key和Value
3.TreeSet中不能有重复对象,而TreeMap中可以存在
4.Key可以是任意数据类型, 无序的, 唯一的,—>set集合
5.Value 可以是任意数据类型, 无序的, 不是唯一的 ---->collection集合
6.一个key只能对应一个value(value可以为集合,集合中存储多个数据
7.TreeSet是由TreeMap的key维护的,他们的使用方式相同,但是TreeMap是键值对的形式.
反射----Class对象
反射是发生在程序运行期间的行为–java的一个动静态机制
1.创建对象的时候,拿到的都是当天前类型Class对象的一个镜像|赋值体
2.在类加载的时候,会在内存中存在当天前类型的一个Class对象,一个类的Class对象中存储这个类的所有信息(属性,方法,构造器…)
3.只要我们能够获取这个类型的Class对象,就可以对这个类做一切操作

Class 类的实例表示正在运行的 Java 应用程序中的类和接口
获取源头(Class对象):
1.对象.getClass()
Class cls1=“哈哈”.getClass();
Class cls2=“呵呵”.getClass();
System.out.println(cls1cls2);
2.类名.class
Class cls3=String.class;
System.out.println(cls1
cls3);
System.out.println(cls3);
3.Class.forName(“类的权限命名:包名+类名”)
Class cls4=Class.forName(“java.lang.String”);
System.out.println(cls3cls4);
4.根据子类的Class对象获取父类的Class对象
Class cls5=cls4.getSuperclass();
System.out.println(cls5);
5.获取基本数据类型的Class对象
Class base1=int.class;
System.out.println(base1);
Class cls6=Integer.class;
System.out.println(base1
cls6);
Class base2=Integer.TYPE; //得到对应的基本数据类型的class对象
System.out.println(base1==base2);

常用的方法
//1.getName() 包名+类名
System.out.println(cls5.getName());
2. Class<?>[] getInterfaces()
Class[] arr=cls4.getInterfaces();
System.out.println(Arrays.toString(arr));
3.String getSimpleName()
System.out.println(cls4.getSimpleName());
4.boolean isInterface() isPrimitive()
System.out.println(Integer.class.isPrimitive());
System.out.println(Integer.TYPE.isPrimitive());

通过反射创建对象
1)通过反射获取到类中的构造器
2)根据构造器创建对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值