[JAVA]java之高级数据结构及其运用

前言:学过一些很基础的java知识,感觉还是不怎么够用。特别是在用一些集合类,一些java中的高级数据结构。理解得有点不够透彻。代码部分参考菜鸟教程

主线一:枚举—>位集合—>矢量—>栈

一、枚举:枚举不是一个高级数据结构,但是在运用中是比不可缺少的。枚举的作用是作为一种类似指针的东西,来控制存储在其他数据结构中的元素。个人理解就像C语言中的指针。
定义及使用方法:

	//定义枚举类型变量
	Enumeration <String> days;
	//定义矢量型变量
	Vector<String> dayNames = new Vector<String>();
	//调用矢量型变量中的add方法,向矢量中增加元素
	dayNames.add("Sunday");
	dayNames.add("Monday");
	dayNames.add("Tuesday");
	dayNames.add("Wednesday");
	dayNames.add("Thursday");
	dayNames.add("Friday");
	dayNames.add("Saturday");
	//重点部分   将枚举指向矢量的第一个元素
	days = dayNames.elements();
	//判断枚举指向的地址中,是否存在元素
	while(days.hasMoreElements()) {
		System.out.println(days.nextElement());
		
	}

二:位集合:类似可变数组。
定义及其使用方法:

	/**
	 * 位集合
	 */
	BitSet bits1 = new BitSet(16);
    BitSet bits2 = new BitSet(16);
      
     // set some bits
     for(int i=0; i<40; i++) {
        if((i%3) == 0) bits1.set(i);
        if((i%4) != 0) bits2.set(i);
     }
     System.out.println("Initial pattern in bits1: ");
     System.out.println(bits1);
     System.out.println("\nInitial pattern in bits2: ");
     System.out.println(bits2);

三:矢量:类似可变数组

四:栈:类似矢量,特点元素先进后出,后进先出

主线二:枚举—>字典—>哈希表—>属性

在字典、哈希表和属性中,存储元素的方式都是以键值对形式存在的。值可以由键得出,类似数组当中的索引。使用的时候也是用过枚举指向定义的某数据结构的键,判断某数据结构是否存在元素,或则对元素进行系列操作。
定义及其使用:

	/**
      * hashTable
      */
     //定义哈希表,在定义时,需要指明键值对的类型
     Hashtable<String, Double> balance = new Hashtable<String, Double>();
     //定义枚举型变量name,也需要指明类型    用于指向哈希表中的键
     Enumeration<String> name;
     String key;
     double bal;
     //向哈希表中压入键值对 值
     balance.put("coco", new Double(15.44));
     balance.put("Tanzl", new Double(45.45));
     balance.put("jim", new Double(45.23));
     balance.put("kou",new Double(78.45));
     
     //重点部分   将枚举型变量指向哈希表中的键
     name = balance.keys();
     //输出哈希表中的数据 
     while(name.hasMoreElements()) {
    	 
    	 key = (String)name.nextElement();
    	 //get方法用于得到哈希表中的值
    	 System.out.println( key + ":" + balance.get(key));
    	 
     }
     System.out.println();
     bal = (double)balance.get("coco").doubleValue();
     balance.put("coco", new Double(bal + 100));
     System.out.println("coco new values is:" + balance.get("coco"));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值