zoukankan      html  css  js  c++  java
  • java中Set,Map,Stack一些简单用法

     1 import java.util.Iterator;
     2 import java.util.Stack;
     3 import java.io.*;
     4 import java.util.Set;
     5 import java.util.Map;
     6 import java.util.HashMap;
     7 import java.util.TreeSet;
     8 public class StackUsing{
     9    public static void main(String args[]) throws IOException{
    10       Stack<Integer> s = new Stack<Integer>();
    11       int i;
    12       for(i=0; i<10; ++i)
    13          s.push(i); 
    14    
    15       //it.hasNext()如果还有元素可以继续进行迭代,返回true! it.next()返回当前迭代器所指向的元素,并指向下一个迭代的对象
    16       for(Iterator<Integer>it = s.iterator(); it.hasNext(); ){//从栈底开始打印
    17          System.out.println(it.next());
    18       }
    19    
    20       for(Integer k:s){
    21            System.out.println(k);
    22       }
    23     
    24       while(!s.empty()){//从栈顶开始打印
    25          System.out.println(s.pop());
    26       }
    27 
    28      Set<Integer> st = new TreeSet<Integer>();
    29      for(i=0; i<10; ++i)
    30         st.add(i);
    31      for(Integer k: st){//可以这样遍历一个集合对象
    32         System.out.println(k);
    33      }
    34      
    35      for(Iterator<Integer>it = st.iterator(); it.hasNext(); ){//也可以这样遍历一个集合对象
    36          System.out.println(it.next());
    37      }
    38 
    39      Set<myInteger> stp = new TreeSet<myInteger>();//实验一下自己定义的类的集合
    40      for(i=0; i<10; ++i)
    41        stp.add(new myInteger(i, i*2)); 
    42     
    43      for(myInteger x:stp){
    44         System.out.println(x.first + " " + x.second);
    45      }
    46 
    47      Map<String, Integer>mp = new HashMap<String, Integer>();
    48      String str;
    49      BufferedReader myInput = new BufferedReader(new InputStreamReader(System.in));
    50 
    51      str=myInput.readLine();
    52      while(str.compareTo("#")!=0){
    53          Integer cnt=mp.get(str);
    54          if(cnt==null)
    55             cnt=new Integer(0);
    56          ++cnt;
    57          mp.put(str, cnt);
    58          str=myInput.readLine();
    59      }
    60      
    61      ///3种遍历Map的方式
    62      for(String ss : mp.keySet()){
    63         System.out.println(ss + " " + mp.get(ss));
    64      }
    65      System.out.println("**********************");
    66      
    67      //静态内部类是属于类的,不是属于某一个实例的;静态内部类随着类加载而加载,非静态内部类是随着实例的加载而加载
    68      for(Map.Entry<String, Integer>entry : mp.entrySet()){//返回此映射中包含的映射关系的 set 视图。返回的 set 中的每个元素都是一个 Map.Entry
    69         System.out.println(entry.getKey() + " " + entry.getValue());
    70      }
    71      System.out.println("**********************");
    72 
    73      for(Iterator<Map.Entry<String, Integer> > it = mp.entrySet().iterator(); it.hasNext(); ){
    74          Map.Entry<String, Integer>entry=it.next();
    75          System.out.println(entry.getKey() + " " + entry.getValue());
    76      }
    77    }
    78 }
    79 
    80 class myInteger implements Comparable{
    81     int first;
    82     int second;
    83     public myInteger(int a, int b){
    84          first=a;
    85          second=b;
    86     }
    87     public myInteger(){
    88         first=0;
    89         second=0;
    90     }
    91     public int compareTo(Object x){
    92         if(first>((myInteger)x).first) return -1;//在这里实现的是从大到小排序
    93         else if(first==((myInteger)x).first) return 0;
    94         else return 1;
    95     }
    96 }
  • 相关阅读:
    Hdu 1429 胜利大逃亡(续) (bfs+状态压缩)
    Vijos 1456 最小总代价 (状压dp)
    洛谷 P1313 计算系数 (二项式定理)
    洛谷 P1134 阶乘问题
    EINTR错误
    TCP和UDP协议的应用/参数查看
    BAT面经
    高级环境编程要看的
    UDP丢包和无序 问题的解决方法
    tcp/ip
  • 原文地址:https://www.cnblogs.com/hujunzheng/p/3788442.html
Copyright © 2011-2022 走看看