1. java小問題,使用哈希表儲存元素(比如說字元串),我們老師是把哈希表比作一個數組,然後通過演算法計
哈希表要佔用比成員數據略大的連續地址空間。比如你存10個數,可能需要申請20個數的地址空間a[20].
散列函數把這10個數分別散落在這20個空間中,好的散列函數生成的地址值需要沒有碰撞沖突,2個數據出現在一個地址空間的機率要最小化...
2. 關於java的哈希值
看看JDK API文檔,記得裡面有例子的
HashMap 或 HashTable
3. java中hashtable怎樣存儲數據和讀取數據
我可以告訴你一個思路,你自己看看書,寫出程序吧
象你這種情況,可以有兩種方案:
一種是將用戶信息存成XML文件,一種是將對象序列化存貯到硬碟
個人建議第二種,操作更方便。
實現思路基本一致,都是在初始化時,從硬碟讀入數據,生成對象,然後對這個對象進行操作,退出時,將操作後的對象寫回硬碟。應該不是很難的,可能序列化平常不怎麼用需要好好查一下。
4. java中hashtable怎樣存儲數據和讀取數據
Hashtable-哈希表類
以哈希表的形式存儲數據,數據的形式是鍵值對.
特點:
查找速度快,遍歷相對慢
鍵值不能有空指針和重復數據
創建
Hashtable<Integer,String> ht=new
Hashtable<Integer,String>();
添值
ht.put(1,"Andy");
ht.put(2,"Bill");
ht.put(3,"Cindy");
ht.put(4,"Dell");
ht.put(5,"Felex");
ht.put(6,"Edinburg");
ht.put(7,"Green");
取值
String str=ht.get(1);
System.out.println(str);// Andy
對鍵進行遍歷
Iterator it = ht.keySet().iterator();
while (it.hasNext()) {
Integer key = (Integer)it.next();
System.out.println(key);
}
對值進行遍歷
Iterator it = ht.values().iterator();
while (it.hasNext()) {
String value =(String) it.next();
System.out.println(value);
}
取Hashtable記錄數
Hashtable<Integer,String> ht=new Hashtable<Integer,String>();
ht.put(1,"Andy");
ht.put(2,"Bill");
ht.put(3,"Cindy");
ht.put(4,"Dell");
ht.put(5,"Felex");
ht.put(6,"Edinburg");
ht.put(7,"Green");
int i=ht.size();// 7
刪除元素
Hashtable<Integer,String> ht=new Hashtable<Integer,String>();
ht.put(1,"Andy");
ht.put(2,"Bill");
ht.put(3,"Cindy");
ht.put(4,"Dell");
ht.put(5,"Felex");
ht.put(6,"Edinburg");
ht.put(7,"Green");
ht.remove(1);
ht.remove(2);
ht.remove(3);
ht.remove(4);
System.out.println(ht.size());// 3
Iterator it = ht.values().iterator();
while (it.hasNext()) {
// Get value
String value =(String)
it.next();
System.out.println(value);
}
5. java怎麼輸出哈希表的存儲方式
額。。用hashmap可以嗎?或者hashset?我都是用的這個
6. JAVA中哈希碼具體是什麼
hashcode返回的數值可以做一個比較器 一般情況下 如果hashCode相同 則equals應該也判定相等 就像MD5一樣 可以理解成某塊具體的地址 有一一對應的映射關系
7. 用java編寫哈希表,輸入一組數據,創建一個哈希表,然後進行元素的查詢、刪除
簡單的理解為key是value的代號,比如 HashMap map = new HashMap();
map.put("小王","王尼瑪");
map.put("小黃","黃世仁");
小王就是王尼瑪的key ,王尼瑪 就是value本身,
map.get("小王") 得到的就是 王尼瑪;
8. python的哈希值如何用java編寫
MessageDigest md = MessageDigest.getInstance("MD5");
FileInputStream fis = new FileInputStream(outputFile);
byte[] dataBytes = new byte[1024];
int nread = 0;
while ((nread = fis.read(dataBytes)) != -1) {
md.update(dataBytes, 0, nread);
}
byte[] mdbytes = md.digest();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < mdbytes.length; i++) {
sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1));
}
String output_md5 = sb.toString();
9. java語言中,128位的文件hash值用什麼數據類型存儲比較好要求定長。
用16個位元組的byte a[]=byte[16];
或者2個long存儲,long a[]=new long[2];
用位運算處理java的「有符號」
比如取有符號的byte,用容量大一級的short或int保存轉換後的無符號數據;
byte b=-1;
short s=(short) b&0xff; //轉換成無符號
取long的最高位元組,(包括符號位在內)
long l=l>>>56;
10. java 怎麼寫hashcode
當你要overwrite方法equal是,要overwrite復寫hashCode
publicclassEmp
{
privateintage;
publicEmp(intage)
{
super();
this.age=age;
}
publicinthashCode()
{
returnage;
}
publicbooleanequals(Objectobj)
{
booleanflag=false;
Empemp=(Emp)obj;
if(emp.age==age)
flag=true;
returnflag;
}
}