数组与其他种类的容器之间的区别主要有三方面:效率、类型和保存基本数据的能力。现在Java中的容器具有自动包装的功能,使得容器与数组看起来二者之间的区别更小了。在java中数组就是一个简单的线性序列,所以在访问数组的元素师非常的快速,然而这些所必须付出的代价就是数组对象的大小是固定的,而且在其生命周期内是不可以被改变的。
我们在前面提到了泛型,由于擦除会擦除掉运行时泛型的参数信息,然而数组必须要知道保存在其中的类型信息,所以数组与泛型并不能很好的结合,例如我们不能实例化具有参数化类型的数组:
public class Test<T> { public static void main(String[] args) { // Cannot create a generic array of Test<String> Test<String>[] tests = new Test<String>[10]; } }
当我我们可以Object类型的数组然后进行转型。
数组有一个重要的用途,就是我们可以创建测试数据用的数组,这里我们会使用到策略设计模式:
例如:
public class RandomGenerator<T> { private static Random r = new Random(47); public static class Boolean implements Generator<java.lang.Boolean>{ public java.lang.Boolean next(){ return r.nextBoolean(); } } public static class Integer implements Generator<java.lang.Integer>{ public java.lang.Integer next(){ return r.nextInt(); } } }
在java.util类库中存在一个Arrays类,具有一些用于数组的static方法,如:
equasl(),deepEquals();fill();sort();binarySearch();toString();hashcode()以及Arrays.asLis()。
其中binarySearch(),必须在排序后的数组中才可以使用。
数组比较的简单,我们在以后的编程中,尽量选择容器而不是数组,只是在非常注重性能是在考虑使用数组。
相关推荐
Java基础之数组元素
Java基础之数组的访问
Java基础之数组的概述
Java基础之数组的遍历
Java基础之数组求最值
Java基础之数组的注意事项
JAVA基础之数组的定义方式
Java基础之数组的定义方式二
Java基础之数组的动态初始化
本教程“02-Java基础(数组-常见操作-遍历)”将深入讲解Java数组的概念、创建、初始化以及如何进行遍历等核心知识点。 首先,数组是存储同一类型元素的固定大小的集合。在Java中,数组的声明语法如下: ```java 数据...
在这个主题“07-Java基础(数组-常见问题)”中,我们将深入探讨数组在Java编程中的一些常见问题及其解决方案。 1. **数组的声明与初始化** 在Java中,数组的声明分为声明类型和变量名,以及指定数组长度两个步骤。...
Educoder题目:Java入门 - 数组基础答案解析
在实际编程中,全排列的算法不仅适用于字符数组,还可以应用于数字数组或其他可比较类型的数组,为解决各种排列组合问题提供基础。理解并掌握这种算法,对于提升Java编程能力,特别是在处理复杂问题时,是非常有帮助...
java语言中数组的基础教程学习资料适用新手java语言中数组的基础教程学习资料适用新手java语言中数组的基础教程学习资料适用新手java语言中数组的基础教程学习资料适用新手java语言中数组的基础教程学习资料适用新手...
Educoder题目:Java入门 - 数组进阶答案解析
Java基础之数组练习2
Java是一种广泛使用的面向对象的编程语言,其设计目标是具有高度的可移植性、安全性和高效性。在Java中,数组是一种重要的数据结构,用于...了解这些基础知识,将有助于你在Java编程实践中更好地处理数据存储和操作。
在Java编程语言中,数组是一种基础且重要的数据结构,用于存储同类型的数据集合。在处理学生成绩统计这类问题时,数组能有效地帮助我们组织和计算数据。以下将详细讲解两个不同的Java代码方案,它们利用数组来完成...
Java基础是学习任何Java开发者的基石,而数组作为Java中最基本的数据结构,是理解内存管理的关键。本节我们将深入探讨“Java基础中的数组与内存图解”,了解数组在内存中的存储方式及其工作原理。 首先,数组是Java...