日历分析(三) java集合类
来源:互联网 发布:sql注入登录 编辑:程序博客网 时间:2024/04/30 18:54
以前写的笔记:
集合与数组的区别:数组保存元素既可以是基本类型的值,也可以是对象的引用。而集合只能保存对象
的引用。
集合由Collection和Map接口派生出。
Collection{
set [EnumSet , SortedSet ( TreeSet), HashSet (LinkedHashSet)],
Queue [ Deque ( LinkedList ) PriorityQueue],
List [LinkedList,ArrayList,Vector( Stack)]
}
Map{
EnumMap,
WeakHashMap,
IdentityHashMap,
HashMap[LinkedHashMap],
Hashtable[Properties],
SortedMap[TreeMap]
}
Iterator接口遍历集合元素,其对象被称为迭代器。
例如:
Collection books=new HashSet();//获取books集合对应的迭代器Iterator it=books.iterator();while(it.hasNext()){String book=(String)it.next();}Map接口实现的类的一个功能特征:Map保存的每项数据都是key-value 对,key不可重复,根
据key获取值。
Set:添加对象到Set中,Set无法记住添加元素的顺序,所以元素不能重复。
List:类似于一个可变长度的数组,记住添加元素的顺序。
Map:与Ste类似,不过是存key-value对。
HashSet:按hash算法存储集合中的元素,具有良好的存取和查找功能,不能保证元素的排列顺序,
不同步(多线程访问一个HashSet须通过代码另外来保证同步),集合元素可以是null。
通过对象的HashCode决定存储的位置,HashCode不相等且equals方法比较不相等即可存储。
LinkedHashSet:HashSet的子类,使用链表维护元素的次序。
TreeSet:是SortedSet接口的唯一实现,保证集合元素处于排序状态。采用红黑树的数据结构对元
素进行排序,调用集合元素的comparableTo()方法比较元素的大小。两种排序方法:自然排序(默
认,升序),定制排序。
注意:向TreeSet中添加元素时,只有第一个元素无须实现Comparable接口,后面的元素必须实
现该接口。
定制排序:
class M{ int age;public M(int age){this.age=age;}}public class TestTreeSet{public static void main(String[] args){TreeSet ts=new TreeSet(new Comparator(){public int compare(Object 01,Object O2){M m1=(M)o1;M m2=(M)o2;if(m1.age>m2.age) return -1;else if(m1.age==m2.age) return 0;else return 1;}});}}List接口:List额外有一个listIterator接口,其增加了向前迭代功能
hasPrevious(),previous(),add.
Vector提供了一个Stcak子类。
Queue接口:队列,实现类有LinkedList,PriorityQueue。
LinkedList可以当作栈也可以当作双向队列来使用。
priorityQueue ” “ 是一个 标准队列 实现类,不是真正的队列,而是取出的是队列中最小的元素。
Map:
HashMap:线程不安全,强引用,不删除是不会被回收。Hashtable:线程安全。
WeakHashMap:弱引用。
网上找的总结
List总结:
1. 所有的List中只能容纳单个不同类型的对象组成的表,而不是Key-Value键值对。例如:[ tom,1,c ];
2. 所有的List中可以有相同的元素,例如Vector中可以有 [ tom,koo,too,koo ];
3. 所有的List中可以有null元素,例如[ tom,null,1 ];
4. 基于Array的List(Vector,ArrayList)适合查询,而LinkedList(链表)适合添加,删除操作。
Set总结:
1. Set实现的基础是Map(HashMap);
2. Set中的元素是不能重复的,如果使用add(Object obj)方法添加已经存在的对象,则会覆盖前面的对象。
简介:
- 日历分析(三) java集合类
- java集合类(三)
- 日历分析(一) java中的日期类
- Java 集合类分析
- Java中使用时间的类集合,Calendar:日历类
- java集合类(并发集合) 三
- Java集合类概述《三》
- Java:集合类性能分析
- java 集合类源码分析
- Java集合类性能分析
- Java:集合类性能分析
- Java:集合类性能分析
- Java:集合类性能分析
- Java集合类性能分析
- java集合类原理分析
- java 集合类结构分析
- java 集合类结构分析
- 【Java集合类】框架分析
- Adroid项目目录结构
- 2013年01月22日
- android传感器的学习
- final的作用
- 部分智能推荐算法总结
- 日历分析(三) java集合类
- android之创建button
- Intent 和 Intent Filter
- FileDescriptor对象和ParcelFileDe…
- millis( )
- 极客工坊-知识库
- setup()函数
- loop() 函数
- 手机到底有多少种传感器?