HashMap和TreeMap是Map接口的两种实现,ArrayDeque和LinkedList是Queue接口的两种实现方式。下面的代码是我今天学习这四个数据结构之后写的。还是不熟悉,TreeMap中的其余构造方法我还没有实现,真搞不懂同样的数据结构用java却写的这么麻烦。。

package regexp;

import java.util.Collection;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Queue;
import java.util.Set;
import java.util.TreeMap; public class test {
public static void main(String args[]) throws NoSuchElementException{
//Queue接口的实现
Queue<Integer> q = new LinkedList<Integer>(); //通过LinkedList实现Queue接口
// Queue<Integer> q = new ArrayDeque<Integer>(); //通过LinkedList实现Queue接口
for(int i=0;i<10;i++) {
q.add(i+1);
}
System.out.printf("%d%n", q.size());
q.element();
System.out.printf("%d%n", q.element());
if(q.isEmpty()) {
System.out.printf("%s%n", "The ArrayDeque is empty");
} else {
System.out.printf("%d%n", q.peek());
} System.out.printf("%d%n", q.size());
Integer first = q.remove(),last = q.remove();
System.out.printf("%d %d%n",first,last);
System.out.printf("%d%n", q.size()); //Map接口的实现
Map<Integer,String> mp = new HashMap<Integer,String>();
mp.put(1, "111");
mp.put(2, "222");
String tt = mp.put(3, "333");
System.out.println(tt); //null
String tmp = mp.put(1, "444");
System.out.printf("%s%n",tmp); //
System.out.printf("The size of the map is %d.%n", mp.size()); //
for(int i=0;i<mp.size();i++) {
System.out.printf("id=%d, value=%s%n",i+1,mp.get(i+1));
}
mp.remove(1); //delete key=1 Set<Integer> keys = mp.keySet();
//foreach
for(Integer num : keys) {
System.out.printf(" %d", num);
}
//iterator
Iterator<Integer> it1 = keys.iterator();
while(it1.hasNext()) {
System.out.printf(" %d", it1.next());
} Collection<String> coll = mp.values();
//foreach
for(String s : coll) {
System.out.printf(" %s", s);
}
//iterator
Iterator<String> it2 = coll.iterator();
while(it2.hasNext()) {
System.out.printf(" %s", it2.next());
} Set<Map.Entry<Integer, String>> ss = mp.entrySet();
//foreach
for(Map.Entry<Integer, String> pair : ss) {
Integer num = pair.getKey();
String value = pair.getValue(); System.out.printf(" %s '+' id=%d, value=%s", pair,num,value);
}
//iterator
Iterator<Map.Entry<Integer, String>> it3 = ss.iterator();
while(it3.hasNext()) {
System.out.printf(" %s", it3.next());
} //TreeMap
TreeMap<Integer,String> treemp = new TreeMap<Integer,String>(new myComparator());
treemp.put(111,"111");treemp.put(222, "222");treemp.put(112,"112");treemp.put(113, "113");
for(Map.Entry<Integer, String> pair : treemp.entrySet()) {
Integer num = pair.getKey();
String str = pair.getValue();
System.out.printf(" %d:%s ", num,str);
}
}
} class myComparator implements Comparator<Integer> {
public myComparator() {
}
public int compare(Integer a,Integer b) {
return a.compareTo(b);
} }

下面是运行出来的结果,友友们可以对照着看,有没有初学者呀,come here and leave a message please!

10
1
1
10
1 2
8
null
111
The size of the map is 3.
id=1, value=444
id=2, value=222
id=3, value=333
2 3 2 3 222 333 222 333 2=222 '+' id=2, value=222 3=333 '+' id=3, value=333 2=222 3=333 111:111 112:112 113:113 222:222

学习java之HashMap和TreeMap的更多相关文章

  1. Java中HashMap,LinkedHashMap,TreeMap的区别[转]

    原文:http://blog.csdn.net/xiyuan1999/article/details/6198394 java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类 ...

  2. Java中HashMap和TreeMap的区别深入理解

    首先介绍一下什么是Map.在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value.这就是我们平时说的键值对. Has ...

  3. java中HashMap,LinkedHashMap,TreeMap,HashTable的区别

    java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap Map主要用于存储健值对,根 ...

  4. Java中HashMap和TreeMap的区别

    什么是Map集合在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value.这就是我们平时说的键值对. HashMap ...

  5. Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)

    概要 学完了Map的全部内容,我们再回头开开Map的框架图. 本章内容包括:第1部分 Map概括第2部分 HashMap和Hashtable异同第3部分 HashMap和WeakHashMap异同 转 ...

  6. 【Java】Map杂谈,hashcode()、equals()、HashMap、TreeMap、LinkedHashMap、ConcurrentHashMap

    参考的优秀文章: <Java编程思想>第四版 <Effective Java>第二版 Map接口是映射表的结构,维护键对象与值对象的对应关系,称键值对. > hashco ...

  7. Java开发笔记(六十六)映射:HashMap和TreeMap

    前面介绍了两种集合的用法,它们的共性为每个元素都是唯一的,区别在于一个无序一个有序.虽说往集合里面保存数据还算容易,但要从集合中取出数据就没那么方便了,因为集合居然不提供get方法,没有get方法怎么 ...

  8. Java 容器 & 泛型:五、HashMap 和 TreeMap的自白

    Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Java 容器的文章这次应该是最后一篇了:Java 容器 系列. 今天泥瓦匠聊下 Maps. 一.Ma ...

  9. 杨晓峰-Java核心技术-9 HashMap Hashtable TreeMap MD

    目录 第9讲 | 对比Hashtable.HashMap.TreeMap有什么不同? 典型回答 考点分析 知识扩展 Map 整体结构 有序 Map HashMap 源码分析 容量.负载因子和树化 精选 ...

随机推荐

  1. (转) C++ static、const和static const 以及它们的初始化

    const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间. static表示的是静态的.类的静态成员函数.静态成员变量是和类相关的,而不是和类的 ...

  2. 2014多校第六场 1010 || HDU 4930 Fighting the Landlords (模拟)

    题目链接 题意 : 玩斗地主,出一把,只要你这一把对方要不了或者你出这一把之后手里没牌了就算你赢. 思路 : 一开始看了第一段以为要出很多次,实际上只问了第一次你能不能赢或者能不能把牌出尽. #inc ...

  3. struts2实现选择i18n语言选择切换

    [新手学习记录,仅供参考!] 1.项目准备 首先当然是我们得创建一个struts2的web项目,并且已经实现了一个简单的功能. 以下通过登录功能来举例说明. 2.指定全局国际化资源文件 在struts ...

  4. C/C++类型转换

    1.隐式类型转换 1.1 隐式类型转换的规则 K & R A.6.5 Arithmetic Conversions(数值型间的转换)First, if either operand is lo ...

  5. 5分钟理解iaas paas saas三种云服务区别

    随着云计算的大热,向我咨询云计算相关问题的童鞋也越来越多,其中最近问的比较多的一个问题便是云计算中的pass是什么意思?整好今天有空,统一给大家解释下pass是什么意思?和Iass.Sass之间有什么 ...

  6. EXT实现表格斑马线

    Ext.grid.GridPanel 单双行颜色样式(斑马线)2014-04-03 11:25 1078人阅读 评论(0) 收藏 举报分类:ExtJs(36)Ext.grid.GridPanel st ...

  7. UML系列03之UML时序图

    时序图介绍 时序图(Sequence Diagram),亦称为序列图或循序图,是一种UML行为图.时序图是用来描述系统内部是如何交互运作的,它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协 ...

  8. Android Edittext 显示光标 获取焦点 监听焦点

    Edittext java 代码控制获取焦点 EditText mEditText = (EditText) findViewById(R.id.et); mEditText.setFocusable ...

  9. Android java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor ver

    java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor ver 解决 ...

  10. ubuntu下设置环境变量的三种方法【转】

    转自:http://blog.chinaunix.net/uid-26916352-id-3208366.html 通常设置环境变量有三种方法: 一.临时设置 export PATH=/home/ya ...