现在已经很少用到数组这一类型了,大多是后我们都会选择使用List。相对于List,数据在效率上有一定的优势,但是灵活性不够。下面总结一些数组的基本知识。
1、数组和其他类的容器之间的区别有三方面:效率、类型和保存基本类型的能力,数组能够保存固定长度的数据。
2、[]是访问数组对象的唯一方法,只读成员length是数组对象的一部分,标识数组的大小,并不是实际保存的元素个数。
3、数组与泛型不能很好的结合,不可以实例化具有参数化类型的数组:Peel<Bandana>[] peels=new Peel<Banana>[10]//不合法的
4、数组的使用功能,主要包括数组一些常用的方法
(1)Arrays.fill():用同一个值填充数组的各个位置,而针对对象而言,就是复制同一个引用进行填充。有两个方法:通常产生相同的一组数据,用来测试
Arrays.fill(array,value);array 为一个数组变量,value是一个值,该值的类型为array数组元素的类型,该方法将给array数组的每一个元素赋值value;
Arrays.fill(array,startIndex,endIndex,value);第一个与第四个参数与前一用法相同,startIndex与endIndex为整数类型,并且0<startIndex<endIndex<array.length;该方法为下标大于startindex并且小于endindex的array数组元素赋值value;
(2)复制数组,用System.arraycopy()这种方法比用for循环复制要快得多。java API中由如下描述:arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
Copies an array from the specified source array, beginning at the specified position, to the specified position of the destination array.
方法中的四个参数:源数组、标识从源数组什么位置开始复制的偏移量、目标数组、标识从目标数组的什么位置开始复制的偏移量、以及要复制的元素个数。数组的越界将会导致异常
(3)数组的比较:Arrays提供了equals()方法,用来比较整个数组。数组相等的条件:元素个数相等,对应位置的元素也相等。
注意一下两种方式的不同:array1.equals(array2);
Arrays.equals(array1, array2);
array1.equals(array2) is the same as array1 == array2, i.e. is it the same array. As @alf points out it's not what most people expect.
Arrays.equals(array1, array2) compares the contents of the arrays.
(4)数组元素的比较:实现java.lang.Comparable接口,使得类具有天生的比较能力。
之后就可以用Arrays.sort()对数组进行排序了。
(5)在已排序的数组中查找:Arrays.binarySearch(),如果找到了目标,返回值大于或等于0.否则它产生负返回值,标识若要保持数组的排序状态比目标元素应该插入的位置,计算方式为 : -(插入点)-1;
其中,插入点是指第一个大于查找对象的元素在数组中的位置,如果数组中所有的元素都小于要查找的对象,插入点就等于a.size().
分享到:
相关推荐
【Java学习笔记——良葛格】是一份由爱好者良葛格整理的Java学习资料,主要以PDF格式呈现,虽然可能不完整,但包含了丰富的Java编程基础知识和实践技巧,旨在为初学者提供一个学习和参考的平台。以下是笔记中可能...
本文将深入探讨《Java数据结构和算法》学习笔记的第一部分,主要聚焦于数组、二分法以及大O表示法。这些基础知识对于提升代码性能和优化解决方案具有决定性的作用。 **数组**是编程中最基本的数据结构之一,它在...
### Thinking in Java 自学笔记——第二章 一切皆对象 #### 重要概念解析 ##### 2.1 用引用操纵对象 在Java中,一切都被视为对象,这意味着无论是字符串、数字还是其他数据类型都可以被视为对象来进行操作。当...
【Java学习笔记——全面解析】 Java作为一种广泛应用的高级编程语言,是软件开发领域的核心力量。这份"学习笔记——资料"涵盖了Java学习的各个方面,旨在帮助初学者和有经验的开发者巩固基础,提升技能。以下是对这...
Java JDK 6学习笔记——PPT简体版是针对初学者和有经验的开发者们的一份宝贵资源,它深入浅出地介绍了Java编程语言的核心概念和技术。这份资料以PPT的形式呈现,使得学习过程更加直观易懂,同时包含了课程中的源代码...
ByteBuffer的用法是Java NIO学习中的核心内容。 首先,我们了解下ByteBuffer的基本概念。ByteBuffer是一个字节缓冲区,可以存储字节序列。在NIO中,所有的数据读写都通过缓冲区进行,ByteBuffer与其他类型的Buffer...
"Java JDK 6学习笔记——ppt简体版 第21章.ppt" 是一份关于Java Standard Edition 6(Java SE 6)新特性的讲解资料。在这个章节中,主要介绍了几个重要的更新,包括字符串处理、数组操作、日期与时间的国际化、以及...
良葛格的《Java JDK5.0学习笔记》是一本面向初学者的教程,旨在帮助读者掌握这个版本的核心概念和技术。以下是基于该书部分内容的知识点详解: 1. **泛型**:JDK 5.0引入了泛型,这是一种强大的类型系统增强,允许...
本篇web学习笔记将深入探讨EL的基本概念、语法和应用场景。 首先,EL表达式是用在JSP页面或其他Java EE组件中的一种特殊语法,其基本形式为`${expression}`。这里的`expression`可以是Java对象、属性、方法调用等。...
### Java学习笔记——基础知识详解 #### 一、Java基本数据类型及内存占用 Java作为一种广泛使用的编程语言,其基础数据类型对于理解程序的行为至关重要。Java提供了八种基本数据类型,分为数值型、字符型和布尔型...
**JDK 6学习笔记——PPT简体版** Java Development Kit(JDK)是Java编程语言的核心组件,它提供了开发和运行Java应用程序所需的工具和环境。JDK 6是Oracle公司发布的一个重要版本,为开发者带来了许多改进和新特性...
javascript从入门到跑路—–小文的js学习笔记(1)———script、alert、document。write() 和 console.log 标签 … … javascript从入门到跑路—–小文的js学习笔记目录 ** 含义: 使用单独的变量名来存储一系列的...
这份"Java笔记——2017年3月3日"涵盖了多个关键概念,对于深入理解Java编程至关重要。下面将逐一详解这些知识点: 1. **泛型**:泛型是Java 5引入的一项特性,它允许在类、接口和方法中使用类型参数,增强了代码的...
1. `values()`:返回枚举类型的全部常量数组,常用于遍历枚举。 2. `valueOf(String)`:根据字符串查找对应的枚举常量,若不存在则抛出`IllegalArgumentException`。 四、枚举与switch语句 枚举类型与Java的`switch...
Java是世界上最流行的编程语言之一,...以上就是“达内Core Java学习笔记”中涉及的主要知识点。通过深入学习和实践,初学者可以逐步建立起坚实的Java编程基础,并为进一步学习Java的高级特性和框架打下坚实的基础。
### Java学习笔记极品5:数组深入理解 #### 一、数组概述 在计算机科学中,**数组**是一种基本的数据结构,用于存储具有相同类型的多个元素。在Java编程语言中,数组被视为一种特殊的对象,拥有其独特的特性和方法...
### CoreJava学习笔记 #### 一、JAVA特点与运行原理 **JAVA特点:** 1. **简单性**:Java的设计者们将C++语言中许多不易理解和容易混淆的部分去除,使得Java更容易理解与掌握。 2. **面向对象**:Java几乎一切都...
### Java学习笔记知识点详解 #### 一、Java面向对象编程思想 面向对象编程(Object-Oriented Programming, OOP)是Java的核心特性之一。通过封装、继承和多态这三个基本特征来实现。OOP能够提高代码的复用性和可...