千锋逆战班:Java集合学习与区别详解

3 下载量 57 浏览量 更新于2024-08-29 收藏 305KB PDF 举报
在千锋逆战班的学习过程中,今天的主题是集合(Collection)的基础概念与实践。集合是Java中用于存储对象的数据结构,它允许我们存储一组对象,支持各种操作,如添加、删除和遍历。这里主要讨论了两种类型的集合:ArrayList和LinkedList。 首先,我们来看两个练习题(I和II),它们涉及到ArrayList的使用。在`Test2`类中,创建了一个名为`list`的ArrayList对象,并添加了三个元素:字符串"Hello"、"World"和整数1以及字符串"Learn"。`printList`方法用于遍历并打印列表中的所有元素,输出结果为"Hello Java Learn World"。 关于III部分,尽管在使用上ArrayList和LinkedList可能看起来相似,但它们的实现方式有所不同。ArrayList内部实现是基于动态数组,当我们向其添加元素时,它会自动调整大小。当初始容量为0时,第一次添加后会扩充到10个元素,之后每次扩充都是增加原有容量的50%。另一方面,LinkedList采用了链表数据结构,每个元素作为一个节点(Node),保存着前一个节点和后一个节点的引用。这意味着每次添加新元素时,只会创建一个新的Node,不会像ArrayList那样整体扩大空间。 IV部分提到,虽然ArrayList和LinkedList在功能上相似,但在并发环境和性能上有所差异。ArrayList是线程不安全的,但在单线程环境下执行添加和访问操作时,它的效率更高,因为它是通过连续内存块存储元素。而LinkedList由于链表结构,插入和删除元素时效率较低,但更适合于频繁的插入和删除操作,因为这些操作在链表上操作的时间复杂度相对较低。 接下来,是另一个类`Worker`的示例,它代表了一个工人对象,包含了年龄(age)、姓名(name)和薪水(salary)属性。`Worker`类提供了构造函数和相应的属性设置方法,展示了面向对象编程中如何创建和初始化实例。 今天的学习涵盖了集合在Java中的基本应用,以及ArrayList和LinkedList这两种常见集合类型的特点和适用场景。通过实际编写代码和理解数据结构的内部机制,学生可以更好地掌握这些关键概念,并在后续的编程实践中灵活运用。