Java基础学习(四)数组、集合与泛型---学习总结自大话设计模式

数组

Java 语言中提供的数组是用来存储固定大小的同类型元素。
优点:数组在内存中连续存储,因此可以快速而容易地从头到尾遍历元素,可以快速修改元素等等。
确定:创建时必须要指定数组变量的大小,还有在两个元素之间添加元素也比较困难。

集合

  1. 集合类存放于java.util包中。
  2. 集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(reference)。
  3. 集合类型主要有3种:set(集)、list(列表)和map(映射)。
  4. 集合接口分为:Collection和Map,list、set实现了Collection接口

来自百度百科

简单来讲:集合就是一个存放数据对象引用的容器
常用集合:

  1. ArrayList,实现了可变大小的数组,随机访问和遍历元素时,提供更好的性能。该类也是非同步的,在多线程的情况下不要使用。ArrayList 增长当前长度的50%,插入删除效率低。
  2. LinkedList ,允许有null(空)元素。主要用于创建链表数据结构,该类没有同步方法,如果多个线程同时访问一个List,则必须自己实现访问同步,解决方法就是在创建List时候构造一个同步的List。查找效率低。
  3. HashMap,是一个散列表,它存储的内容是键值对(key-value)映射。该类实现了Map接口,根据键的HashCode值存储数据,具有很快的访问速度,最多允许一条记录的键为null,不支持线程同步。

上述三个集合都不是类型安全的,如果没有定义值的类型,每次使用都需要将值类型封装为Object对象,使用集合元素时,还需要进行拆箱操作,这就带来了很大的性能损耗。

装箱:把值类型打包到Object引用类型的一个实例中。
拆箱:从对象中提取数据类型。

相对于简单的赋值而言,装箱和拆箱过程需要进行大量的计算。对值类型进行装箱时,必须分配并构造一个全新的对象。其次,拆箱所需的强制转换也需要进行大量的运算。

泛型

泛型是具有占位符(类型参数)的类、结构、接口和方法,这些占位符是类、结构、接口和方法所存储或使用的一个或多个类型的占位符。泛型集合类可以将类型参数用作它所存储的对象的类型的占位符;类型参数作为其字段的类型和其方法的参数类型出现。

简单来说,ArrayList<Integer>就是一个泛型。

通常情况下,都建议使用泛型集合,因为这样可以获得类型安全的直接优点而不需要从基集合类型派生并实现类型特定的成员。此外,如果集合元素为值类型,泛型集合类型的性能通常优于对应的非泛型集合类型(并优于从非泛型基集合类型派生的类型),因为使用泛型时不必对元素进行装箱。

简单来说就是确定类型的情况下,建议使用泛型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值