代码改变世界

java collections读书笔记(7) bitset

2013-06-16 15:38 by 很大很老实, 217 阅读, 0 推荐, 收藏, 编辑
摘要:BitSet是叫啥使用的,collection类,这里,我们介绍一下适合使用bitset的地方,以及如何高效使用这个类。bitset类标识一系列的bits,而且是可增长的。每个indexed元素都是0或者1.创建bitset: public BitSet()public BitSet(int nbits)如果没有指定,则为64;具体见源代码: private final static int ADDRESS_BITS_PER_WORD = 6; private final static int BITS_PER_WORD = 1 << ADDRESS_BITS_PER_WORD; 阅读全文

:java collections读书笔记(6) Dictionary and hashtable

2013-06-16 14:41 by 很大很老实, 265 阅读, 0 推荐, 收藏, 编辑
摘要:这几个类,是key-value模式的,和当初的vector等依靠index获取值的方式不一样。Properties类是比较特殊,dictionary和hashable无论key还是value,都可以是对象,而properties必须是string。dictionary是只包含抽象方法的抽象类;据说,这个类在java引入接口前存在的,体现着类似接口的作用,在接口引入java后,这个抽象类也没有变化。HASHTABLE:无论数据结构多大,从hashtable里插入或者寻找一个数据,时间几乎是恒定的。关于这一点,hashtable是如何做到的呢?这段话很重要:When using the key−v 阅读全文

hashtable源代码解析

2013-06-16 14:15 by 很大很老实, 265 阅读, 0 推荐, 收藏, 编辑
摘要:/** Copyright (c) 1994, 2011, Oracle and/or its affiliates. All rights reserved.* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.*/package java.util;import java.io.*;/*** This class implements a hash table, which maps keys to values. Any* non-<code>null</code> object ca 阅读全文

java collections读书笔记(5) Enumeration接口

2013-06-14 13:06 by 很大很老实, 399 阅读, 0 推荐, 收藏, 编辑
摘要:Enumeration,提供了遍历collection的一个方法,这是一个接口,其遵循的是Iterator设计模式。其源代码实现是:package java.util;/*** An object that implements the Enumeration interface generates a* series of elements, one at a time. Successive calls to the* <code>nextElement</code> method return successive elements of the* series. 阅读全文

java collections读书笔记(4) stack

2013-06-14 12:08 by 很大很老实, 191 阅读, 0 推荐, 收藏, 编辑
摘要:stack,是先进后出的一个堆栈,可是,因为他继承自vector,所以,vector很多功能他都具有。stack和vector的关系应该是 has-a,而不是is-a简单的操作有,push,top等见例子如下:import java.util.Stack;public class StackExample {public static void main (String args[]) {Stack s = new Stack();s.push("Autumnal Tints");s.push("A Week on the Concord and Merrimac 阅读全文

java collections读书笔记(3) vector(2)

2013-06-14 11:29 by 很大很老实, 285 阅读, 0 推荐, 收藏, 编辑
摘要:打印vector:可以调用tostring方法。删除所有元素:public void clear()public void removeAllElements()从内部源代码可知,clear就是调用了removeAllElements而已。但是注意,这时候,vector的容量是不变的。删除某个元素:public Object remove(int index)public void removeElementAt(int index) :从源代码来看,只是把index位置后面的元素往前移动一位,调用的是System.arraycopy,然后最后一位指定为null。这两个函数,源代码意思差不多, 阅读全文

java collections读书笔记(3) vector(1)

2013-06-14 09:14 by 很大很老实, 245 阅读, 0 推荐, 收藏, 编辑
摘要:---恢复内容开始---如果你知道数组的大小,并且数组成员都是相同类型的话,那么,Array,绝对是一个不错的选择。可是,如果这个数据结构是动态变化的,而你并不知道最后的大小(尤其是最大),你该怎么办?这个时候,Vector就是不错的选择。同时,java还提供了stack类,用来实现最常见的后进先出的数据结构。在java1.0和java1.1的时候,Vector和Stack的类层次关系是这样的:而从java1.2开始,在引入了java collections framework后,结构变成了这样的:什么类型都可以存到vector中,唯一的例外是,java原生数据,因为他们不是类,哈。vecto 阅读全文

java collections读书笔记(3)Arrays

2013-06-13 09:57 by 很大很老实, 274 阅读, 0 推荐, 收藏, 编辑
摘要:---恢复内容开始---因为,数组是通过引用方式组织的,因此,多维数组的存在,也就是理所当然的。数组之间的引用,构成了多维数组的基础。而且,由于这个引用的方式,数组不一定是矩形的,如下图:When accessing an array with multiple dimensions, each dimension expression is fully evaluated before thenext dimension expression to the right is ever examined. This is important to know if an exception ha 阅读全文

java collections读书笔记(2)Arrays

2013-06-12 11:47 by 很大很老实, 382 阅读, 0 推荐, 收藏, 编辑
摘要:在java语言中,Arrays是唯一一个内置的collection。其内部存储了一系列的元素,可以通过index或者position进行方式。Array是Objects的子类。Arrays基础:举一个简单的例子,就是main方法的输入参数:public class ArrayArgs {public static void main (String args[]) {for (int i=0, n=args.length; i<n; i++) {System.out.println("Arg " + i + ": " + args[i]);}}}由 阅读全文

运行时异常与一般异常有何异同?(转)

2013-06-12 11:10 by 很大很老实, 201 阅读, 0 推荐, 收藏, 编辑
摘要:http://zhidao.baidu.com/question/160180344.htmlJava提供了两类主要的异常:runtime exception和checked exception。checked 异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。 但是另外一种异常:runtime exception,也称运行时异常,我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullP. 阅读全文