Java中的一些集合
来源:互联网 发布:win8没有网络怎么办 编辑:程序博客网 时间:2024/04/26 10:50
对于我写的东西,都是我对学习中的一些理解。希望可以给同我一样的人带来帮助。本人才疏学浅,如果有错误请纠正。
先说说集中常见的集合。Set、List、HashMap、Hashtable、HashSet、LinkedHashMap、LinkedHashSet、TreeSet、TreeMap、Vector、ArrayList。这是我所知道的一些集合操作,如果还有更多的请大家来补充,关于这些我们先慢慢的分析一下。
首先说说关于Set,List。这两者的区别就是Set是没有顺序的,在向里面放数据的时候,不能出现相同的元素。而List呢则是有顺序的,往里面放数据的时候呢,可以出现相同的元素,因为他是有顺序的可以把相同的元素分开,所以其中才允许插入相同的元素。
HashMap,Hashtable,HashSet这三个呢,其中HashMap与Hashtable都是Map的接口类,用唯一的键对应相应的值上。这里还要注意的是呢,我们写代码的时候就可以看出来,HashMap呢输出的时候没有顺序,而Hashtable是同步的也就是有顺序的,感兴趣的朋友呢,可以用代码实现下。而且,关于Map这种键值对应写代码的时候呢。要先对键进行遍历,然后进行迭代,随后根据键取中相应的值。而HashSet就是哈希表与set方式的结合体,具体的解释呢我也不太会说,只要会用就可以了。当作Set一样用。
下面还有两个相对的。一个是TreeMap一个是TreeSet。这两个我们可以先从单词上面分析,Tree就是树,我们用代码实验的时候就会发现,这两个都是有序呢。这个TreeMap就和Hashtable一样是有序的。
下面呢我们在分析下,ArrayList和Vector还有LinkedList这三者,我们可以看出呢他们都是List的接口类,也就是说,他们在存储的过程中呢都是有序的。但是我们仍然需要注意的是呢。三者选择存储数据的时候存储方式是不同的。前两者采用的是数组的存储方式,他们实际所能存储的数据肯定是比存储的数据多,这样方面他们进行删除与插入操作,他们就是索引功能较强,插入性能较差,而Vector呢,虽然采用了数据的存储方式,但是性能上他还是比ArrayList差的。因为他采用了线程安全这个方法。所以性能相对于ArrayList差点。而LinkedList采用的是双向链表的存储方式,所以他的插入性能较强,而索引性能较弱。
这是几个常用的集合。可能初学者刚开始一听的时候是比较乱的,下面呢我们可以归纳旅顺一下。
1.如果这个集合名字上面有Map,那么他就是采用的是那种键值对应的那种方式的。一个例外就是Hashtable
2.如果这个名字上面呢有List,那么他存储的时候呢就是有序的,也有一个例外呢就是Vector
3.如果这个名字上面有Set,那么他存储的时候就是无序的。
4.如果名字上面带有Linked***那么他就采用的是链表的存储方式。
5.两个例外TreeMap与TreeSet。都是有序呢。这样看起来是不是很直观了呢?
下面一个代码小例子,就是Map接口类的时候怎样对键进行遍历,迭代
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class HashMapTest {
public static void main(String args[]) {
HashMap hm = new HashMap();
hm.put("k1", "1");
hm.put("k2", "2");
hm.put("k3", "3");
hm.put("k4", "4");
hm.put("k5", "5");
hm.put("k6", "6");
Set key = hm.keySet();
Iterator it = key.iterator();
while (it.hasNext()) {
String keyNumber = (String) it.next();
System.out.println("键" + keyNumber);
String value = (String) hm.get(keyNumber);
System.out.println("值" + value);
}
}
}
- Java中的一些集合
- JAVA集合中的一些排序算法
- java集合中的一些易混淆的知识点
- Java 集合框架分析:JAVA集合中的一些边边角角的知识
- 集合类 Java中的集合类解析和一些有深入的面试题
- 集合类 Java中的集合类解析和一些有深入的面试题
- SQL中的一些技巧集合
- C# 中的一些集合类
- JAVA中的集合类
- JAVA中的集合类
- JAVA中的集合类
- JAVA中的集合类
- JAVA中的集合类
- JAVA中的集合类 - -
- JAVA中的集合类
- java中的集合类
- Java中的集合类
- Java中的集合
- proc 文件系统 for linux
- 原型与成就
- 一点小经验
- 嵌入式linux下用gdbserver调试共享库
- Mac OS X: login之前/之后启动程序的方法
- Java中的一些集合
- 怎样才算一个优秀的管理者
- AndAlso,OrElse和And,Or的区别
- .NET入门(11)集合里的List简单使用
- WORD中设置大纲目录,设置图表目录
- .net面试1
- 不用SQL语句查询DataTable中的数据
- 放假了
- Debian chroot 环境构建及问题解决