黑马程序员____14java基础 MAP集合 runtime对象和math类

时间:2022-06-25 00:44:13

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------


MAP

               |-----Hashtable: 底层是哈希表数据结构,不可以存入null键和null值。该线程是同步的,JDK1.0出现,效率低。

               |-----HashMap:底层是哈希表数据结构,允许使用null键和null值。该集合线程是不同步的,将Hashtable替代,JDK1.2出现,效率高。

               |-----TreeMap:底层是二叉树数据结构,线程不同步,可以用于给Map集合中的键进行排序。

Map和Set集合很像,其实,Set底层就是使用了Map集合。

备注:在添加元素时,如果出现相同的键,那么后添加的值会覆盖原有键对应值。且put方法会返回被覆盖的值。

Map集合的取出原理:将map集合转换成Set集合,在通过迭代器取出。

备注:当数据之间存在隐射关系时,就要想到map集合。



把数组转换成集合的好处:可以使用集合的思想和方法来操作数组中的元素。注意:将数组变成集合,不可以使用集合的增删方法,因为数组的长度是固定的。

如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转换成集合中的元素。

如果数组中的元素都是基本数据类型,那么会将数组作为集合中的元素存在。

集合变数组:collection接口中的toArray方法。

指定类型的数组到底要定义多长:

当指定类型的数组小于了集合的size,那么该方法内部会创建一个新的数组,长度为集合的size.

当指定类型的数组的长度大于了集合的size,就不会创建一个数组,而是使用传递过来的数组,所以创建一个刚刚好的数组最优。

集合变数组的意思:限定元素的操作,不需要进行增删了。

Runtime对象:该类没有提供构造函数,说明不可以new对象,那么会直接想到该类中的方法都是静态的,发现该类中还有非静态方法,说明该类肯定会提供方法获取本来对象,而且该方法是静态的,并且返回值类型是本类类型,由这个特点可以看出该类是使用了单例设计模式完成。

该方式是:static Runtime getRuntime() ;

Math类的集中常见方法:

Math.ceil():返回大于指定数据的最小整数。

Math.floor(): 返回小于指定数据的最大整数。

Math. round():四舍五入。

Math.raxdom():  随机数。


---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------