关于java核心技术(卷一)读后的思考(泛型数组列表的讨论)

zzuzhouxiang      2022-04-27     427

关键词:

在C++中编译时是要确定数组大小的,而Java有所不同,它允许在运行时确定数组的大小。但是如果仅通过数组是无法改变运行时无法动态更改数组的问题。一旦确定了数组大小,就很难改变他了数组的大小了,要解决这个问题,就需要引入ArrayList的类。它使用起来有点像数组,但在添加或删除元素时,具有自动调节数组容量的功能,而不需要为此编写任何代码。

ArrayList是一个采用类型参数的泛型类。为了指定数组列表保存的元素对象类型,需要用一对尖括号将类名括起来加在后面。下面是声明和构造一个保存Employee对象的数组列表

eg:ArrayList<Employee> staff = new ArrayList<Employee>();

两边都使用类型参数Employee,会有些繁琐。所以我们可以省去右边类型的参数。

ArrayList<Employee> staff = new ArrayList<>();

这可以当作一个“动态的数组”,泛型的类型时Employee,数组名是staff。

对于泛型有几种操作处理方法:

java.util.ArrayList<E>

 

ArrayList<E>():

构造一个空数组列表

ArrayList<E>(int initialCapacity):

用指定容量构造一个空数组列表   参数:initialCapacity  数组列表的最初容量

 

boolean add(E obj):

在数组列表的尾端添加一个元素。永远返回true。 参数:obj    添加的元素

staff.add(new Employee("Harry Hacker"....));

staff.add(new Employee("Tong Tester"......));

数组列表管理着对象引用的一个内部数组。最终,数组的全部空间有可能被用尽。这是若调用add且内部数组已经满了,数组列表将自动创建更大的数组,并将所有的对象从较小的数组中拷贝到较大的数组中。

 

 

 

int size():

返回存储在数组列表中的当前元素数量(这个值将小于或等与数组列表的容量)

 

void ensureCapacity(int capacity):

确保数组列表在不重新分配存储空间的情况下就能够保存给定数量的元素。  参数:capacity     需要的存储容量

如果已经清楚或能够估计出数组可能存储的元素数量,就可以在填充数组之前调用此方法,这个方法将分配合适个对象的内部数组,进行填充,而不用重新分配。

 

 

 

void trimToSize()

将数组列表的存储容量削减 到当前的尺寸。

一旦数组列表大小确认不再发生变化,调用这个方法,将存储区域大小调整为当前大小。

 

而对于设置数组列表元素,可以用set方法。例如staff.set(i,harry);

而获得数组列表元素的方法是get,例如:Employee e=staff.get(i);

这里可以介绍一下toArray方法,这个方法是将数组列表元素拷贝到一个数组中

X[] a=new X[list.size()];
list.toArray(a);

同时这里要补充一下,add这个方法可以在列表任意位置插入元素。

而移除u元素是利用remove方法

eg:Employee e =staff.remove(n);

 

关于java核心技术(卷一)读后的思考(接口的基本知识的讨论)

接口接口技术:这种技术主要用来描述类具有什么功能,而并不给出每个功能的具体实现。一个类可以实现一个或多个接口,并在需要接口的地方,随时使用实现了相应接口对象。接口概念:接口不是类,而是对类的一组需求的... 查看详情

关于java核心技术(卷一)读后的思考(内部类的讨论)

内部类内部类是定义在另一个类中的类。定义内部类的原因有:1)内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据。2)内部类可以对同一个包中的其他类隐藏起来。3)当想要定义一个回调函数且不想编写... 查看详情

关于java核心技术(卷一)读后的思考(equals方法的讨论)

这是我反复看了两遍才理解的部分。其中也不乏参考了他人的微博内容,才大致对这个方法有所理解。首先我们从Object类开始说起,书中已经说了Object类是Java中所有类的始祖,在Java中的每个类都是由他扩展而来的,但在现实使... 查看详情

关于java核心技术(卷一)读后的思考(用户自定义类,静态域和静态方法的思考以及方法参数)

用户自定义类:这部分并没有太过于困难的部分,借由代码进行复习:Employee类的定义:packagecom.java.EmployeeTest;importjava.time.*;publicclassEmployee{   privateStringname;   privatedoublesalary;  &nb 查看详情

关于java核心技术(卷一)读后的思考(对象与类,日历的构造)

关于这本书,前三张都是基本内容,我觉得个人掌握的还可以,所以从第四章开始整理每日所学。第四章主要说的是对象和类。第一部分是面向对象程序设计的概述。其中面向对象程序设计简写OOP,接下来写的是类,即构造对象... 查看详情

关于java核心技术(卷一)读后的思考(lambda表达式的讨论)

lambda表达式lambda表达式是一个可传递的代码块。可以以后执行一次或者多次。在程序运行中我们经常会遇到传递代码段的情况,但是我们一般都是先构造一个对象,然后通过对象调用相应的代码块来实现传递代码块的目的,这个... 查看详情

《java核心技术卷一》随笔

1.静态常量:  静态变量使用得比较少,但静态常量使用得比较多,例如,在Math类中定义了一个静态常量:  publicstaticfinalPI=3.141592653;  在程序中,可以采用Math.PI的形式获得这个常量。  如果关键字static被省略,PI就变... 查看详情

java核心技术卷一笔记7

第九章集合9.1Java集合框架在Java类库中,集合类的基本接口是Collection接口。访问集合元素时,使用“foreach”循环编译器会将其翻译成带有迭代器的循环。元素被访问的数据取决于集合类型,对于ArrayList进行迭代就会按顺序得到... 查看详情

java核心技术卷一笔记8

第十四章并发多进程和多线程的区别:每个进程拥有自己的一套变量,而线程共享数据。14.1什么是线程不要调用Thread类或Runnable对象的run方法。直接调用run方法只会执行同一个线程中的任务,而不会启动新线程。应该调用start方... 查看详情

java核心技术卷一笔记六date类

在Java核心技术卷就行了一前期 date类出现的频率很高 所以就对date类进行了小小的整合Date类有两个date类表示特定时间的类 这个构造函数分配一个Date对象并初始化它代表指定的毫秒数,因为被称为“纪元”,即1970年1... 查看详情

《java核心技术(卷一)》读书笔记——第六章:内部类

1.      内部类的概念?类中类2.      为什么要用内部类?内部类的方法可以访问外部类的实例域内部类对外部类的同一个包中的类实现了隐藏匿名内部类在“想要定义一个回调函数却... 查看详情

go语言核心技术(卷一)之2.1-整数

第二章序 在计算机底层,一切都是比特位。然而计算机一般都操作固定大小的数,称之为字(word)。字会被解释为整数、浮点数、比特位数组、内存地址等,这些字又可以进一步聚合成数据包(packet)、像素点、作品集、是个或者... 查看详情

面霸篇:高频java基础问题(核心卷一)(代码片段)

从面试题作为切入点提升大家的Java内功,所谓根基不牢,地动山摇。只有扎实的基础,才是写出写好代码。拒绝知识碎片化码哥在《Redis系列》的开篇Redis为什么这么快中说过:学习一个技术,通常只接触了零... 查看详情

《大型网站技术架构:核心原理与案例分析》读后感

 李智慧的著作《大型网站技术架构:核心原理与案例分析》,写得非常好, 本着学习的态度,对于书中的关于性能优化的讲解做了一个思维导图,供大家梳理思路和学习之用。抛砖引玉。   查看详情

左耳朵耗子关于技术变现一文读后感

核心论点我完全没有必要通过打工听人安排而活着,而是反过来通过在公司工作提高自己的技能,让自己可以更为独立和只有地生活如何技术变现保持学习,掌握大多数人不能掌握的技能,先让周围的人有求于我关注有价值的东... 查看详情

java核心技术-01-谈谈泛型

泛型在实际开发和面试中都非常重要,所以我们今天来谈谈这个话题1,什么是泛型泛型的本质是为了参数化类型,通过泛型指定的不同类型来控制形参具体限制的类型。举个例子!我们要定义一个只能存放整数的集合,怎么写... 查看详情

《构建之法》第十六章读后感更正

第十六章IT行业的创新1.关于灵感。灵光闪现固然重要,很多伟大的发明依靠的就是灵光一现的基础,但是灵光闪现的前提是个人的思考,长时间的思考。完成这一灵光的基础是不断的尝试,提高自己的技术。这样才会将自己的... 查看详情

《java核心技术》读后感(java小虚竹)

❤️作者主页:小虚竹❤️作者简介:大家好,我是小虚竹。Java领域优质创作者🏆,CSDN博客专家🏆,华为云享专家🏆,掘金年度人气作者🏆,阿里云专家博主🏆❤️技术活,该赏... 查看详情