标签:存储空间 连续 for 大小 遍历 内部实现 连接 实现 固定
1)线性结构:(只有一个开始结点和一个终端结点)
2)非线性结构:(一个结点有多个前驱结点和后继结点)
A: 集合:(元素之间的关系较为松散) B: 线性结构:(元素之间存在严格的一对一的关系)
C: 树形结构:(元素之将存在严格的一对多关系) D: 网状结构: (元素之间存在多对多关系)
A:顺序结构 B:连接结构 C:索引结构 D:散列结构
对JAVA的集合的理解是相对于数组。数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型);JAVA集合可以存储和操作数目不固定的一组数据。
所有的JAVA集合都位于 java.util包中,JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。
Collection是最基本的集合接口,声明了适用于JAVA集合(只包括Set和List,Map没有)的通用方法。
存放的是对象的引用,没有重复对象
Set set=new HashSet(); String s1=new String("hello"); String s2=s1; String s3=new String("world"); set.add(s1); set.add(s2); set.add(s3); System.out.println(set.size());//打印数目 为 2。
Set 的 add()方法是如何判断对象是否已经存放在集合中?
通过迭代器,遍历比较。
最基本的两种检索集合中的所有对象的方法:
1: 用for循环和get()方法: 2: 使用 迭代器(Iterator): for(int i=0; I < size; i++){ Iterator it = list.iterator(); System.out.println(list.get(i)); while(it.hashNext){ } System.out.println(it.next); }
List接口下一共实现了三个类:ArrayList(Java1.2才有),Vector(Java1.0就有),LinkedList。
ArrayList有三个构造方法:
public ArrayList(int initialCapacity) // 构造一个具有指定初始容量的空列表。 public ArrayList() // 构造一个初始容量为10的空列表。 public ArrayList(Collection<? extends E> c) // 构造一个包含指定 collection 的元素的列表
Vector有四个构造方法:
public Vector() //使用指定的初始容量和等于零的容量增量构造一个空向量。 public Vector(int initialCapacity) //构造一个空向量,使其内部数据数组的大小,其标准容量增量为零。 public Vector(Collection<? extends E> c) //构造一个包含指定 collection 中的元素的向量 public Vector(int initialCapacity,int capacityIncrement) //使用指定的初始容量和容量增量构造一个空的向量 /* Vector比Arraylist多一个构造方法,capacityIncrement就是容量增长,即增长因子,ArrayList中是没有的。 扩容时,如果容量增量初始化的不是0,即使用的第四个构造方法进行的初始化,那么扩容的容量就是原来的容量加上容量增量的值;如果没有设置容量增量,那么扩容后的容量就是原来容量的二倍。 */
是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象。
Map没有继承于Collection接口。从Map集合中检索元素时,只要给出键,就会返回对应的值对象。
Map 的常用方法:
1 添加,删除操作: put() remove( ) putAll(Map t) clear()
2 查询操作: get(Object key): 获得与关键字key相关的值
Map集合中的键不允许重复,也就说,任意两个键对象通过equals()方法比较的结果都是false。但是可以将任意多个键独享映射到同一个值对象上。
SparseArray是android提供的一个工具类,它可以用来替代hashmap进行对象的存储,其内部实现了一个矩阵压缩算法,很适合存储稀疏矩阵的。其内部实现了压缩算法,可以进行矩阵压缩,大大减少了存储空间,节约内存。此外它的查找算法是二分法,提高了查找的效率。
List按对象进入的顺序保存对象,不做排序或编辑操作。Set对每个对象只接受一次,并使用自己内部的排序方法(通常,你只关心某个元素是否属于Set,而不关心它的顺序--否则应该使用List)。Map同样对每个元素保存一份,但这是基于"键"的,Map也有内置的排序,因而不关心元素添加的顺序。如果添加元素的顺序对你很重要,应该使用 LinkedHashSet或者LinkedHashMap.
标签:存储空间 连续 for 大小 遍历 内部实现 连接 实现 固定
原文地址:http://www.cnblogs.com/keyarchen/p/6062936.html