import java.util.Iterator;
import java.util.Stack;
import java.io.*;
import java.util.Set;
import java.util.Map;
import java.util.HashMap;
import java.util.TreeSet;
public class StackUsing{
public static void main(String args[]) throws IOException{
Stack<Integer> s = new Stack<Integer>();
int i;
for(i=0; i<10; ++i)
s.push(i); //it.hasNext()如果还有元素可以继续进行迭代,返回true! it.next()返回当前迭代器所指向的元素,并指向下一个迭代的对象
for(Iterator<Integer>it = s.iterator(); it.hasNext(); ){//从栈底开始打印
System.out.println(it.next());
} for(Integer k:s){
System.out.println(k);
} while(!s.empty()){//从栈顶开始打印
System.out.println(s.pop());
} Set<Integer> st = new TreeSet<Integer>();
for(i=0; i<10; ++i)
st.add(i);
for(Integer k: st){//可以这样遍历一个集合对象
System.out.println(k);
} for(Iterator<Integer>it = st.iterator(); it.hasNext(); ){//也可以这样遍历一个集合对象
System.out.println(it.next());
} Set<myInteger> stp = new TreeSet<myInteger>();//实验一下自己定义的类的集合
for(i=0; i<10; ++i)
stp.add(new myInteger(i, i*2)); for(myInteger x:stp){
System.out.println(x.first + " " + x.second);
} Map<String, Integer>mp = new HashMap<String, Integer>();
String str;
BufferedReader myInput = new BufferedReader(new InputStreamReader(System.in)); str=myInput.readLine();
while(str.compareTo("#")!=0){
Integer cnt=mp.get(str);
if(cnt==null)
cnt=new Integer(0);
++cnt;
mp.put(str, cnt);
str=myInput.readLine();
} ///3种遍历Map的方式
for(String ss : mp.keySet()){
System.out.println(ss + " " + mp.get(ss));
}
System.out.println("**********************"); //静态内部类是属于类的,不是属于某一个实例的;静态内部类随着类加载而加载,非静态内部类是随着实例的加载而加载
for(Map.Entry<String, Integer>entry : mp.entrySet()){//返回此映射中包含的映射关系的 set 视图。返回的 set 中的每个元素都是一个 Map.Entry
System.out.println(entry.getKey() + " " + entry.getValue());
}
System.out.println("**********************"); for(Iterator<Map.Entry<String, Integer> > it = mp.entrySet().iterator(); it.hasNext(); ){
Map.Entry<String, Integer>entry=it.next();
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
} class myInteger implements Comparable{
int first;
int second;
public myInteger(int a, int b){
first=a;
second=b;
}
public myInteger(){
first=0;
second=0;
}
public int compareTo(Object x){
if(first>((myInteger)x).first) return -1;//在这里实现的是从大到小排序
else if(first==((myInteger)x).first) return 0;
else return 1;
}
}

java中Set,Map,Stack一些简单用法的更多相关文章

  1. 刷题upupup【Java中Queue、Stack、Heap用法总结】

    [Queue] 先进先出(First-In-First-Out),LinkedList实现了Queue接口.它只允许在表的前端进行删除操作,而在表的后端进行插入操作. add()       增加一个 ...

  2. 谈谈java中遍历Map的几种方法

    java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下具体的用法以及各自的优缺点 先初始化一个map public ...

  3. Map java中的map 如何修改Map中的对应元素

    Map java中的map 如何修改Map中的对应元素 Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对象.         Map的接口         Map ...

  4. Java中Set Map List 的区别

    java中set map list的区别: 都是集合接口 简要说明 set --其中的值不允许重复,无序的数据结构 list   --其中的值允许重复,因为其为有序的数据结构 map--成对的数据结构 ...

  5. JAVA中关于Map的九大问题

    通常来说,Map是一个由键值对组成的数据结构,且在集合中每个键是唯一的.下面就以K和V来代表键和值,来说明一下java中关于Map的九大问题. 0.将Map转换为List类型 在java中Map接口提 ...

  6. Java开发知识之Java中的Map结构

    Java开发知识之Java中的Map结构 一丶Map接口 Map没有实现Collection接口,提供的是Key 到Value的映射. Map中.不能包含相同的Key,每个Key只能映射一个Value ...

  7. js中的Map对象的简单示例

    es6提供一个对象Map, 其功能类似于java中的Map, 下面是java中的Map和js中的Map的简单对比: js中的Map.set()相当于java中的Map.put(), js中的Map.s ...

  8. java中遍历Map几种方法

    java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下具体的用法以及各自的优缺点. 先初始化一个map: publ ...

  9. Java中遍历Map集合的四种方法

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

随机推荐

  1. Exchange环境搭建心得

    不知道是思维模式的问题,还是智商不够用,从3月1日开始准备自学Exchange,到今天还是有好多东西稀里糊涂的.不说别的,就搭建环境,前期的报错折腾了好一阵.现在回顾一下,用Server08R2,一台 ...

  2. tcpdum使用

    安装tcpdump包:yum install -y tcpdump ,不加”-i eth0”是表示抓取所有的接口包括lo. 1.抓取包含10.88.88.96的数据包 # tcpdump -i eth ...

  3. 【Beta】Daily Scrum Meeting第一次

    1.任务进度 学号 已完成 接下去要做 502 更换网络框架为okHttp 搭建好PHP单元测试环境,写出PHP测试的demo 509 PHP的login返回值:插入数据改为单行插入:系负责人更新单行 ...

  4. IOS UIAlertController 使用方法

    在很多种语言中,alert都表示弹窗操作,弹窗功能非常有用,不仅可以用于正式的app功能中,也可以在调试中使用.在OC中,UIAlertController类用来控制弹窗操作.在IOS 8.0之前, ...

  5. Mac git提交步骤小记

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 19.0px; font: 13.0px "PingFang SC"; c ...

  6. 使用EntityFramework6连接MySql数据库(db first方式)

    准备工具: VS2013.MySQL For VisualStudio 1.1.4.Connector/Net 6.8.3(百度网盘里) 程序包管理器执行命令: Install-Package Ent ...

  7. 【腾讯Bugly干货分享】打造“微信小程序”组件化开发框架

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/2nQzsuqq7Avgs8wsRizUhw 作者:Gc ...

  8. ENode框架Conference案例分析系列之 - 复杂情况的读库更新设计

    问题背景 Conference案例,是一个关于在线创建会议(类似QCon这种全球开发者大会).在线管理会议位置信息.在线预订某个会议的位置的,这样一个系统.具体可以看微软的这个项目的主页:http:/ ...

  9. 使用 nvm 管理不同版本的 node 与 npm

    补充说明:Mac 下通过 brew install nvm 所安装的 nvm ,由于安装路径不同,无法正确启用.建议使用 brew uninstall nvm 卸载掉之后,通过本文的方案重新安装一次. ...

  10. 剑指Offer面试题:11.打印1到最大的n位数

    一.题目:打印1到最大的n位数 题目:输入数字n,按顺序打印出从1最大的n位十进制数.比如输入3,则打印出1.2.3一直到最大的3位数即999. 二.不同的解法 2.1 不假思索的解法 最容易想到的办 ...