Java集和类
一、简介
java.util
集合类是用来存放某类对象的。集合类有一个共同特点:只容纳对象(实际上是对象名,即指向地址的指针)。这一点和数组不同,数组可以容纳对象和简单数据。如果在集合类中既想使用简单数据类型,又想利用集合类的灵活性,就可以把简单数据类型数据变成该数据类型类的对象,然后放入集合中处理(执行效率会降低)。
(数据结构几乎在每一段程序设计过程中都会使用到,但是如果每次编程都要重新构建这些数据结构显然违背了软件组件化的思想。因此Java的设计者考虑把这些通用的数据结构做成API供程序员调用。)
二、分类
Java中的集合类可以分为两大类:
- 实现Collection接口 (Collection是一个基本的集合接口,其中可以容纳一组元素)
- 实现Map接口 (Map没有继承Collection接口,与Collection是并列关系。Map提供键(key)到值(value)的映射。一个Map中不能包含相同的键,每个键也只能映射一个值。)
2.1 Collection接口
Collection接口有两个重要的子接口List和Set。
- List表达一个有序的集和,List中的每个元素都有索引,使用此接口能够准确地控制每个元素插入的位置,用户也能够使用索引来访问List中的元素,List类似于Java的数组。
- Set接口的特点是不能包含重复的元素。对Set中任意两个元素
element1
和element2
都有用element1.equals(element2)=false
。另外,Set最多只能有一个null元素。Set接口模仿了数学上的集合概念。
2.2 Map接口
Map接口与Collection接口不同,Map提供键到值得映射。Map接口提供三种Collection试视图,允许以键集、值集或键值——对映射的形式查看某个映射的内容。
三、常用方法
1. List
toArray()
-
<T> T[] toArray(T[] a)
接收T类型的数组, 返回一个T类型的数组。 -
Object[] toArray()
没有参数返回一个Object数组
-
List是接口类,其在ArrayList中的实现:()
/**
* Returns an array containing all of the elements in this list
* in proper sequence (from first to last element).
*
* <p>The returned array will be "safe" in that no references to it are
* maintained by this list. (In other words, this method must allocate
* a new array). The caller is thus free to modify the returned array.
*
* <p>This method acts as bridge between array-based and collection-based
* APIs.
*
* @return an array containing all of the elements in this list in
* proper sequence
*/
public Object[] toArray() {
return Arrays.copyOf(elementData, size);
}