码迷,mamicode.com
首页 > 编程语言 > 详细

第16章_数组:

时间:2018-04-04 21:00:20      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:bsp   class   upper   test   size   参数   类型检查   for   blog   


1:数组的特殊性:
1、数组是效率最高的存储方式,但是为这种速度付出的代价是长度固定、生命周期中不可改变。
2、数组中存放的固定类型的数据,类型检查在编译和运行期都有。
3、数组支持基本数据类型。
以上三个数组的优点,相对于容器,好像只剩下了效率高。但是实际情况中数组很受显示。
2:数组标识符其实是一个引用,指向堆中的一个真实的对象。
3:数组和泛型结合:
1、不靠谱的做法
TestClass<ClassB>[] test = new TestClass<ClassB>[10] //由于擦除会移除类型信息,但是数组还必须要确定类型。
2、 靠谱的做法:
参数化数组本生的类型:
     class TestClass<T>{
        public T[] f(T[] arg){return arg;}
     }
     class main{
        Integer arr = {1,23,4};
        Integer nums = new TestClass<Integer>().f(arr);
     }
4:Arrays类实用方法:
1、equals() 比较两个数组是否相同(deepEqual()用于多维数组)。(元素位置、值都相同)
2、fill() 用同一个值填充所有的位置。
3、sort() 对数组排序。(可以对基本数据类型,实现了Comparable接口或者关联了Comparator的对象)
4、binarySearch() 在已经排序的数组中查询元素。
5、asList() 将序列或者数组转变为List容器(返回的List不可变)。
6、arraycopy() 复制数组,针对各种类型做了重载,比使用for循环块很多。


杂记:
1:ArrayList可以自动扩充尺寸的数组。
2:@supperss Warnings 抑制警告。
3:泛型使得一些本该在运行期暴露的错误在编译器报错。
4:使用接口可以使我们写出通用的代码。
5:多态通过分离做什么和怎么做将接口和实现类分离开。改变了程序的组织接口,提高了扩展性。
6:封装通过合并特征和行为来抽象新的数据类型。
7:ArrayList.asList();方法接收一个数组或者以逗号分隔的元素列表。将其装换为list。
使用ArrayList.asList()或取到的list底层表示是数组,所以不制止add()或者delete()方法。
8:显示类型参数说明
    class F{};
    class S1 extends F{};
    class S2 extends F{};
    List<F> f =  Arrays.<F>asList(new S1(),new S2());

 






第16章_数组:

标签:bsp   class   upper   test   size   参数   类型检查   for   blog   

原文地址:https://www.cnblogs.com/Xmingzi/p/8718564.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!