java集合性能介绍以及用法总结
来源:互联网 发布:onenote mac版下载 编辑:程序博客网 时间:2024/06/06 02:46
java中常用集合总结
介绍集合之前先介绍一下迭代器,(迭代器跟集合有千丝万缕的关系,懂程序的…不多说了,不知道的看看书)。
简化对集合的操作,主要功能是遍历并选择集合中的对象,其中有三个最要的方法:1、hasNext() 返回布尔值 看集合中还有没有元素
2、next() 返回下一个元素 返回的是O的所一定要强转一下
3、remove() 元素删除接口 Iterator:
构建一个Iterator迭代器 –>Iterator iterator=所要进行迭代的集合对象.iterator()。接口 Enumeration: 注意=====Enumeration已经不是主流,Iterator是它的下一代替代品
构建一个Enumeration迭代器–>Enumeration enumeration=所要进行迭代的集合对象.elements()
- Map接口
Map集合提供了按照“键值对”存储元素的方法,一个键唯一映射一个值。集合中“键值对”整体作为一个实体元素时,类似List集合,但是如果分开来年,Map是一个两列元素的集合:键是一列,值是一列。与Set集合一样,Map也没有提供随机访问的能力,只能通过键来访问对应的值。
Map的每一个元素都是一个Map.Entry,这个实体的结构是< Key, Value >样式。 - HashMap
HashMap实现了Map接口,但它是非线程安全的。HashMap允许key值为null,value也可以为null,HashMap去掉了HashTable的contains方法,但是加上了containsValue()和containsKey()方法。
HashMap 一个速度最快的容器,此类不保证映射的顺序,特别是它不保证该顺序恒久不变,不是线程同步,看以下用法
public static void testHashMap(){ HashMap hashmap = new HashMap(); hashmap.put("0","c"); hashmap.put("1","a"); hashmap.put("2","b"); hashmap.put("3","a"); //存放对象用put方法 记住所存的一定是键值对 System.out.println(hashmap); //该容器有其内部的排序方式 事实上是依据哈希算法来排的 Set set = hashmap.keySet(); //获取全部键 它的返回类型是set Iterator iterator=set.iterator(); while(iterator.hasNext()){ System.out.print(hashmap.get(iterator.next())); //获取迭代出来的元素 }}
- HashTable
Hashtable也是Map的实现类,继承自Dictionary类。它与HashMap不同的是,它是线程安全的。而且它不允许key为null,value也不能为null,由于它是线程安全的,在效率上稍差于HashMap。
Hashtable 任何非 null 对象都可以用作键或值,现在用得不多啦,一个完全可以由其他容器替换的老容器类型 ,看以下用法:
public static void testHashTable(){ Hashtable hashtable=new Hashtable(); hashtable.put("0","c"); hashtable.put("1","a"); hashtable.put("3","c"); hashtable.put("2","b"); System.out.println("\nHashtableEntity:"); //注意与之对应的迭代器是Enumeration,而不是Iterator Enumeration enumeration=hashtable.elements(); while(enumeration.hasMoreElements()){ System.out.println(enumeration.nextElement()); }}
4.Set接口
Set是不能包含重合元素的容器,其实现类有HashSet,继承于它的接口有SortedSet接口等。Set中提供了加、减、和交等集合操作函数。Set不能按照索引随机访问元素,这是它与List的一个重要区别。
检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。
5.HashSet
HashSet实现了Set接口,其内部是采用HashMap实现的。放入HashSet的对象最好重写hashCode、equals方法,因为默认的这两个方法很可能与你的业务逻辑是不一致的,而且,要同时重写这两个函数,如果只重写其中一个,很容易发生意想不到的问题。
6.TreeSet
TreeSet同样的Set接口的实现类,同样不能存放相同的对象。它与HashSet不同的是,TreeSet的元素是按照顺序排列的,因此用TreeSet存放的对象需要实现Comparable接口。
以下用法:
public static void testTreeSet(){ TreeSet treeset=new TreeSet();//自动排序内容 treeset.add("b"); treeset.add("a"); treeset.add("c"); treeset.add("d"); System.out.println("TreeSet down"); System.out.println(treeset); System.out.println(treeset.first());//返回第一个元素 Iterator iterator=treeset.iterator(); while(iterator.hasNext()){ System.out.print(iterator.next()+";"); }}
- java集合性能介绍以及用法总结
- Java集合类用法介绍
- java集合框架以及性能分析
- java性能优化总结(2):集合
- java 集合的概念以及集合框架介绍
- 最全java集合用法总结
- 开源的高性能Java集合:GNU Trove介绍
- Java程序性能优化总结--------数组/集合篇
- JAVA集合类总结以及写博客的初衷
- 【集合】Java集合框架介绍
- Java 中 StringBuilder 在高性能用法总结
- Java 中 StringBuilder 在高性能用法总结
- Java 中 StringBuilder 在高性能用法总结
- Java 中 StringBuilder 在高性能用法总结
- Java 中 StringBuilder 在高性能用法总结
- JAVA集合类(介绍)
- Java集合Collection介绍
- Java集合介绍1
- 动态规划算法求解硬币找零问题(1)
- 设计模式--适配器模式
- Hbase伪分布式配置
- linux ftp no route to host 解决方案
- c++字符串的分割保存
- java集合性能介绍以及用法总结
- AndFix热修复问题
- App语言国际化(iOS)
- MySQL中NULL和NOT NULL探究
- 显卡基础
- Strom Topology执行分析:worker数,Bolt实例数,executor数,task数
- 高可用Hadoop平台-Flume NG实战图解篇
- 欧拉函数
- Centos 5 Oracle 11G 超详细安装