易截截图软件、单文件、免安装、纯绿色、仅160KB

java集合框架


 
 
Java为数据结构的映射定义了一个接口java.util.Map.它有四个实现类,分别是HashMap, Hashtable,LinkedHashMap和TreeMap主要用于存储键值对,根据键得到值,因此不允许键重复,但允许值重复。
HashMap是一个最常用的Map,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序完全是随机的。HashMap最多只允许一条记录的键为Null,允许多条记录的值为Null,当get()方法返回null值时,既可以表示HashMap中没有该键,也可以表示该键所对应的值为null,因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键,而应该用containsKey()方法来判断。HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致。如果需要同步,可以用Collections的synchronizdeMap方法使HashMap具有同步能力,或者使用ConcurrentHashMap.另外HashMap是基于哈希表实现的,HashMap的键得重写hashCode()和equals()方法。
 
TreeMap
是实现SortedMap接口,能够把它保存的记录根据键排序,默认是按键值的升序排序,也可以指定排序的比较器,当用Iterator遍历TreeMap时,得到的记录是排过序的。所以TreeMap的键得实现Comparabl,没有实现的话就要给TreeMap指定一个Comparator
Hashtable中的方法是同步的,也即是说,在多线程应用程序中,不用专门的操作就安全地可以使用Hashtable了;而Hashtable不允许键值为空。
内部哈希:哈希映射技术
几乎所有通用Map都使用哈希映射,这是一种将元素映射到数组的非常简单的机制,您应了解哈希映射的工作原理,以便充分利用Map.
哈希映射结构由一个存储元素的内部数组组成,由于内部采用数组存储,因此必然存在一个用于确定任意键访问数组的索引机制,实际上该机制需要提供一个小于数组大小的整数索引值,该机制称作哈希函数。在Java基于哈希的Map中,哈希函数将对象转换为一个适合内部数组的整数,您别不必为寻找一个易于使用的哈希函数而大伤脑筋:每个对象都包含一个返回整数值的hashCode()方法,要将该值映射到数组,只需将其转换为一个正值,然后将该值除以数组大小后取余数即可,以下是一个简单的,适用于任何对象的Java哈希函数
int hashvalue = Maths.abs(key.hashCode()) % table.length;
(%二进制运算符(称作模)将左侧的值处以右侧的值,然后返回整数形式的余数。)
实际上,在1.4版发布之前,这就是各种基于哈希


相关文档:

Java模拟HTTP的Get和Post请求

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.URIException;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.meth ......

用JAVA实现多线程(生产者与消费者问题)


public class MultiThread {
 public static void main(String[] args) {
  ProductStack box = new ProductStack("box");
  Producer p1 = new Producer(box, "p1");
  Producer p2 = new Producer(box, "p2");
  Producer p3 = new Producer(box, "p3");
 &nb ......

语言混编之java调用c dll jni技术小试

刚从网上看到c和java混编的文章,就亟不可待的尝试了一下。呵呵,效果还是很好的。下面将自己成果粘贴出来
(转载于http://www.zxbc.cn/html/20070518/19986.html)。实验之后可以通过。
1java中调用c语言
首先编写Main.java
public class Main 
{
 public native static int getStrNum(byte str[], int s ......

MyEclipse注册JAVA程序代码!

package cn.vicky.reg;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class MyEclipseReg {
// ///////////////////////////////////////////////////////////
// 运行该文件 输入用户名 点击回车即可生成 MyEclipse 6.0 和 7.0 通用户注册码
// ///// ......

JAVA图形基础


1.最简单的图形,一个消息框
import javax.swing.JOptionPane;
//表明程序使用javax.swing包的JOptionPane类
public class Dialog1{

public static void main(String[] args) {
// TODO Auto-generated method stub
    &n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号