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 }
  • 相关阅读:
    Android Studio4.1.2中,修改了gradle后,如何在不关闭AS IDE的情况下使gradle进行sync
    Android-studio-ide-201.7042882-windows-4.1.2项目卡在Gradle: Download gradle-6.5-bin.zip
    Intellij IDEA开发环境中Springboot项目无Run ****main()的菜单
    《Bootstrap4Web设计与开发实战》源代码下载
    数字操作题目汇总
    机器学习模型跨平台上线
    koro1FileHeader 注释插件 vscode
    nginx https协议配置
    nginx 配置 不显示版本号
    Asp.Net Core 中的静态文件
  • 原文地址:https://www.cnblogs.com/hujunzheng/p/3788442.html
Copyright © 2011-2022 走看看