java中Set,Map,Stack一些简单用法

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;
    }
}
时间: 2024-09-11 22:17:39

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

JAVA中关于Map的九大问题

通常来说,Map是一个由键值对组成的数据结构,且在集合中每个键是唯一的.下面就以K和V来代表键和值,来说明一下java中关于Map的九大问题. 0.将Map转换为List类型 在java中Map接口提供了三种集合获取方式:Key set,,value set, and key-value set..它们都可以通过构造方法或者addAll()方法来转换为List类型.下面代码就说明了如何从Map中构造ArrayList: // key list List keyList = new ArrayLi

java中关于Map的几大问题总结

通常来说, Map 是一个由键值对组成的数据结构,且在集合中每个键是唯一的.下面就以 K 和 V 来代表键和值,来说明一下 java 中关于 Map 的九大问题. 0 .将 Map 转换为 List 类型 在 java 中 Map 接口提供了三种集合获取方式: Key set, , value set , and key-value set. .它们都可以通过构造方法或者 addAll() 方法来转换为 List 类型.下面代码就说明了如何从 Map 中构造 ArrayList : // key

对象-java中的引用和new的用法

问题描述 java中的引用和new的用法 初学java,有些问题很幼稚,还望各位大神能多扶持 首先,说说引用的问题, 我定义了一个A类.其中初始化属性name为A, 接下来: A a = new A://创建一个对象 A a1 = a://这里好像是一个引用,有点不懂,我把他理解为指针, a = new A; // 这是第二个问题,在创建对象的时候,一般不都是类 对象 = new 类吗?为什么这里可以直接new呢,而且看教程上是说又新分配了一个空间,我想问的是只要是new,都是分配存储空间吗,及

Java中StringUtils工具类的一些用法实例

  这篇文章主要介绍了Java中StringUtils工具类的一些用法实例,本文着重讲解了isEmpty和isBlank方法的使用,另外也讲解了trim.strip等方法的使用实例,需要的朋友可以参考下 StringUtils 方法的操作对象是 java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果

java中一个商品列表集合简单问题

问题描述 java中一个商品列表集合简单问题 java中一个商品列表集合简单问题 java中一个商品列表集合简单问题 肯德可以理解为对象,java一切都是对象 那么可以理解为一个类吗可以理解为一个数组吗,可以理解为一种数据泪腺吗 解决方案 对象集合类是类,但不能说对象集合的对象是一个类,对象就是类的实例,和类是不等的.数组是指基本数据类型集合.比如int [] arrs = new int[]{},而List 等类创建的对象集只能称为集合.不能理解为数据类型.数据类型只有基本类型和引用类型.

java-求解Java中import和package的各种用法

问题描述 求解Java中import和package的各种用法 不同目录下的Java文件,每个文件我都给建立了一个包,在其中一个Java文件中访问另一个的时候,import了另一个包,并且也修改了环境变量,把另一个包所在的目录加了进去,结果编译还是错误,说是找不到那个包,包这块还是挺混乱的,哪位给讲讲,请不吝赐教,能不能很系统全面的给说说 解决方案 java中import,package的用法JAVA 中import和 package的用法java中import,package的用法 解决方案二

JAVA中的break[标签]continue[标签]用法

原文:JAVA中的break[标签]continue[标签]用法 注意:JAVA中的标签必须放在循环之前,且中间不能有其他语句.例如:tag:for或while或do--while;   1.使用break退出一层循环(与C/C++中的break用法一样)   1 public static void main(String args[]) 2 { 3 int i=0; 4 while(i<100) 5 { 6 if(i==10) break; 7 System.out.println("

js中遍历Map对象的简单实例_javascript技巧

实例如下: console.log(jsonData);//火狐控制台打印输出: Object { fileNumber="文件编号", fileName="文件名称"} for(var key in jsonData) console.log("属性:" + key + ",值:"+ jsonData[key]); } 打印输出: 属性:fileNumber, 值:文件编号 属性:fileName, 值:文件名称 以上这篇j

Java中volatile关键字的作用与用法详解_java

volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volatile关键字才得以重获生机. volatile 关键字作用是,使系统中所有线程对该关键字修饰的变量共享可见,可以禁止线程的工作内存对volatile修饰的变量进行缓存. volatile 2个使用场景: 1.可见性:Java提供了volatile关键字来保证可见性. 当一个共享变量被volatile修饰时,它会保证修