前言:学过一些很基础的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"));