Java中HashMap使用自定义Key类
自定义的Key类需要重载equals, hashCode函数。。
package com.albert.test;
import java.util.Vector;
import java.util.HashMap;
/**
* @author tough_guy
*
*/
//对于自定义的key, 需要重载hashCode函数和equals函数
class IPSegment
{
long ip_s;
long ip_e;
int p;
IPSegment Reset(long f1, long f2, int f3)
{
ip_s = f1;
ip_e = f2;
p = f3;
return this;
}
public boolean equals(Object so)
{
if(! (so instanceof IPSegment))
return false;
if(this.ip_s == ((IPSegment)so).ip_s && this.ip_e == ((IPSegment)so).ip_e && this.p == ((IPSegment)so).p)
return true;
else
return false;
}
public int hashCode()
{
return (int)(ip_s + ip_e + p);
}
}
public class TestString {
Vector<IPSegment> vi = new Vector<IPSegment>();
HashMap<IPSegment, Integer> hii = new HashMap<IPSegment, Integer>();
HashMap<String, String> hss = new HashMap<String, String>();
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
TestString ts = new TestString();
ts.vi.add(new IPSegment().Reset(1, 2, 3));
ts.vi.add(new IPSegment().Reset(2, 2, 4));
ts.vi.add(new IPSegment().Reset(3, 2, 5));
ts.vi.add(new IPSegment().Reset(4, 2, 6));
System.out.println(ts.vi.size());
System.out.println(ts.vi.get(2).ip_s + "\t" + ts.vi.get(2).ip_e + "\t" + ts.vi.get(2).p);
ts.hii.put(new IPSegment().Reset(2,2,3), 4);
ts.hii.put(new IPSegment().Reset(2,3,3), 7);
ts.hii.put(new IPSegment().Reset(3,2,3), 9);
System.out.println(ts.hii.size());
System.out.println(ts.hii.toString());
System.out.println((Integer)ts.hii.get(new IPSegment().Reset(2,3,3)));
System.out.println((Integer)ts.hii.get(new IPSegment().Reset(3,2,3)));
ts.hss.put("1", "hello");
System.out.println((String)ts.hss.get("1"));
}
}
相关文档:
1、使用java.util.ResourceBundle类的getBundle()方法
示例:
String name = "logging"; // the logging.properties file in src root folder
ResourceBundle rb = ResourceBundle.getBundle(name,Locale.getDefault());
// test the rb
String propertyKey = "xxx";
System.out.println(rb.getString(propert ......
package com.project.ajaxs;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.Calendar;
import java.uti ......
Java 技术是什么?
Java 技术既是一种高级的面向对象的编程语言,也是一个平台。Java 技术基于 Java 虚拟机(Java virtual machine,JVM)的概念 —— 这是语言与底层软件和硬件之间的一种转换器。Java 语言的所有实现都必须实现 JVM,从而使 Java 程序可以在有 JVM 的任何系统上运行。
Java 编程语言(Java p ......
load-on-startup元素一般是配合servlet的配置使用的,load-on-startup 元素在web应用启动的时候指定了servlet被加载的顺序,它的值必须是一个整数。如果它的值是一个负整数或是这个元素不存在,那么容器会在该servlet被调用的时候,加载这个servlet 。如果值是正整数或零,容器在配置的时候就加载并初始化 ......
1、在oracle的sys-sysdba下登陆
写一个java source程序链接sqlserver2005:
create or replace and compile java source named test as
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class excutesql1
{
public static String entry ......