新聞中心
編寫一程序,用哈希表實(shí)現(xiàn)學(xué)生成績(jī)單的存儲(chǔ)與查詢
import java.util.Hashtable;
創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括金湖網(wǎng)站建設(shè)、金湖網(wǎng)站制作、金湖網(wǎng)頁制作以及金湖網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,金湖網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到金湖省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
聲明引用了嗎?
給你完整代碼
學(xué)生類Student,代碼如下:
class Student{
private String no;
private String name;
private Integer score;
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getScore() {
return score;
}
public void setScore(Integer score) {
this.score = score;
}
public String toString(){
return "學(xué)號(hào):" + no + " 姓名:" + name + " 成績(jī):" + score;
}
}
主類HashTest,代碼如下:
import javax.swing.*;
import java.util.Vector;
import java.util.Hashtable;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class HashTest extends JFrame {
JLabel lblsearchbyidorname;
JTextField txfidorname;
JButton btnsearchbyidorname;
JTable reader;
JButton btnadd;
JButton btndelete;
Hashtable ht;
Vector colnames;
JLabel lblno;
JLabel lblname;
JLabel lblscore;
JTextField addno;
JTextField addname;
JTextField addscore;
Vector data;
public HashTest() throws HeadlessException {
super("學(xué)生成績(jī)管理");
ht = new Hashtable();
lblsearchbyidorname = new JLabel("學(xué)號(hào):");
txfidorname = new JTextField(20);
lblno = new JLabel("學(xué)號(hào)");
lblname = new JLabel("姓名");
lblscore = new JLabel("分?jǐn)?shù)");
addno = new JTextField(10);
addname = new JTextField(12);
addscore = new JTextField(10);
btnsearchbyidorname = new JButton("查找--");
btnadd = new JButton("新增");
btndelete = new JButton("刪除");
colnames = new Vector();
colnames.add("學(xué)號(hào)");
colnames.add("姓名");
colnames.add("成績(jī)");
data = new Vector();
reader = new JTable(new ReaderTableModel(data,colnames));
reader.setPreferredSize(new Dimension(700,260));
JPanel pnlsearch = new JPanel();
pnlsearch.add(lblsearchbyidorname);
pnlsearch.add(txfidorname);
pnlsearch.add(btnsearchbyidorname);
pnlsearch.add(btndelete);
JScrollPane scptable = new JScrollPane(reader,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
JPanel pnladd = new JPanel();
pnladd.add(lblno);
pnladd.add(addno);
pnladd.add(lblname);
pnladd.add(addname);
pnladd.add(lblscore);
pnladd.add(addscore);
pnladd.add(btnadd);
reader.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
ScoreHandler sh = new ScoreHandler();
btnadd.addActionListener(sh);
btndelete.addActionListener(sh);
btnsearchbyidorname.addActionListener(sh);
Container c = getContentPane();
c.add(pnlsearch,BorderLayout.NORTH);
c.add(scptable,BorderLayout.CENTER);
c.add(pnladd,BorderLayout.SOUTH);
setSize(600,400);
setVisible(true);
}
public static void main(String[] args) {
new HashTest();
}
class ScoreHandler implements ActionListener{
public void actionPerformed(ActionEvent e) {
JButton btn = (JButton)e.getSource();
if(btn == btnsearchbyidorname){
Object obj = ht.get(txfidorname.getText().trim());
if(obj == null){
JOptionPane.showMessageDialog(null,"沒有找到!");
}else{
JOptionPane.showMessageDialog(null,"查詢結(jié)果如下:\n" + obj.toString());
}
}else if(btn == btnadd){
Student stu = new Student();
stu.setName(addname.getText().trim());
stu.setNo(addno.getText().trim());
stu.setScore(Integer.valueOf(addscore.getText().trim()));
ht.put(stu.getNo(),stu);
addDataToTable(stu);
addname.setText("");
addno.setText("");
addscore.setText("");
}else if(btn == btndelete){
int index = reader.getSelectedRow();
if (index == -1){
JOptionPane.showMessageDialog(null,"你沒有選擇學(xué)生!");
}else{
String no = (String)reader.getValueAt(index,0);
Student stu = (Student)ht.remove(no);
JOptionPane.showMessageDialog(null,"學(xué)生成績(jī)刪除!\n" + stu.toString());
data.remove(index);
reader.repaint();
}
}
}
}
public void addDataToTable(Student stu){
Vector temp = new Vector();
temp.add(stu.getNo());
temp.add(stu.getName());
temp.add(stu.getScore());
data.add(temp);
reader.repaint();
}
}
VB.NET中 1.存儲(chǔ)數(shù)字的不同數(shù)據(jù)類型所需字節(jié)數(shù)的大?。?2.隨機(jī)文件寫入的基本單位是什么?
1、
Boolean
取決于實(shí)現(xiàn)平臺(tái)
Byte
1 個(gè)字節(jié)
Char
2 個(gè)字節(jié)
Date
8 個(gè)字節(jié)
Decimal
16 個(gè)字節(jié)
Double
8 個(gè)字節(jié)
Integer
4 個(gè)字節(jié)
Long
8 個(gè)字節(jié)
Object
4 個(gè)字節(jié)(32 位平臺(tái)上)
8 個(gè)字節(jié)(64 位平臺(tái)上)
SByte
1 個(gè)字節(jié)
Short
2 個(gè)字節(jié)
Single
4 個(gè)字節(jié)
String?(變長(zhǎng))
取決于實(shí)現(xiàn)平臺(tái)
UInteger
4 個(gè)字節(jié)
ULong
8 個(gè)字節(jié)
用戶定義的(結(jié)構(gòu))
取決于實(shí)現(xiàn)平臺(tái)
UShort
2 個(gè)字節(jié)
2、
字節(jié)
為什么VB.net和JAVA上相同的字符串對(duì)應(yīng)的哈希值
ateString
時(shí)間:DateTime.Now.ToFileTime
可以這樣用:
Response.Write(DateTime.Now.ToShortDateString() + "br/");
Response.Write(DateTime.Now.ToShortTimeString() + "br/");
輸出:
2007-1-29
8:49
Response.Write(DateTime.Now.ToLongDateString() + "br/");
Response.Write(DateTime.Now.ToLongTimeString() + "br/");
輸出:
2007年1月29日
8:49:15
不知合不合你要求
我是要VS2005下使用,很好用??刹榭碝SDN以下簡(jiǎn)單例出:
.NET Framework 類庫
DateTime 成員
請(qǐng)參見 構(gòu)造函數(shù) 字段 方法 屬性 顯式接口實(shí)現(xiàn)
全部折疊 全部展開 成員選項(xiàng):全部顯示 成員選項(xiàng):已篩選
包括繼承的成員
包括受保護(hù)的成員
僅 .NET Compact Framework 成員
表示時(shí)間上的一刻,通常以日期和當(dāng)天的時(shí)間表示。
下表列出了由 DateTime 類型公開的成員。
公共構(gòu)造函數(shù)
名稱 說明
DateTime 已重載。初始化 DateTime 結(jié)構(gòu)的新實(shí)例。
頁首
公共字段
名稱 說明
MaxValue 表示 DateTime 的最大可能值。此字段為只讀。
MinValue 表示 DateTime 的最小可能值。此字段為只讀。
頁首
公共屬性
名稱 說明
Date 獲取此實(shí)例的日期部分。
Day 獲取此實(shí)例所表示的日期為該月中的第幾天。
DayOfWeek 獲取此實(shí)例所表示的日期是星期幾。
DayOfYear 獲取此實(shí)例所表示的日期是該年中的第幾天。
Hour 獲取此實(shí)例所表示日期的小時(shí)部分。
Kind 獲取一個(gè)值,該值指示由此實(shí)例表示的時(shí)間是基于本地時(shí)間、協(xié)調(diào)通用時(shí)間 (UTC),還是兩者皆否。
Millisecond 獲取此實(shí)例所表示日期的毫秒部分。
Minute 獲取此實(shí)例所表示日期的分鐘部分。
Month 獲取此實(shí)例所表示日期的月份部分。
Now 獲取一個(gè) DateTime 對(duì)象,該對(duì)象設(shè)置為此計(jì)算機(jī)上的當(dāng)前日期和時(shí)間,表示為本地時(shí)間。
Second 獲取此實(shí)例所表示日期的秒部分。
Ticks 獲取表示此實(shí)例的日期和時(shí)間的刻度數(shù)。
TimeOfDay 獲取此實(shí)例的當(dāng)天的時(shí)間。
Today 獲取當(dāng)前日期。
UtcNow 獲取一個(gè) DateTime 對(duì)象,該對(duì)象設(shè)置為此計(jì)算機(jī)上的當(dāng)前日期和時(shí)間,表示為協(xié)調(diào)通用時(shí)間 (UTC)。
Year 獲取此實(shí)例所表示日期的年份部分。
頁首
公共方法
名稱 說明
Add 將指定的 TimeSpan 的值加到此實(shí)例的值上。
AddDays 將指定的天數(shù)加到此實(shí)例的值上。
AddHours 將指定的小時(shí)數(shù)加到此實(shí)例的值上。
AddMilliseconds 將指定的毫秒數(shù)加到此實(shí)例的值上。
AddMinutes 將指定的分鐘數(shù)加到此實(shí)例的值上。
AddMonths 將指定的月份數(shù)加到此實(shí)例的值上。
AddSeconds 將指定的秒數(shù)加到此實(shí)例的值上。
AddTicks 將指定的刻度數(shù)加到此實(shí)例的值上。
AddYears 將指定的年份數(shù)加到此實(shí)例的值上。
Compare 比較 DateTime 的兩個(gè)實(shí)例,并返回它們相對(duì)值的指示。
CompareTo 已重載。 將此實(shí)例與指定的對(duì)象或值類型進(jìn)行比較,并返回二者相對(duì)值的指示。
DaysInMonth 返回指定年和月中的天數(shù)。
Equals 已重載。 返回一個(gè)值,該值指示兩個(gè) DateTime 對(duì)象,或者一個(gè) DateTime 實(shí)例和另一個(gè)對(duì)象或 DateTime 是否相等。
FromBinary 反序列化一個(gè) 64 位二進(jìn)制值,并重新創(chuàng)建序列化的 DateTime 初始對(duì)象。
FromFileTime 將指定的 Windows 文件時(shí)間轉(zhuǎn)換為等效的本地時(shí)間。
FromFileTimeUtc 將指定的 Windows 文件時(shí)間轉(zhuǎn)換為等效的 UTC 時(shí)間。
FromOADate 返回與指定的 OLE 自動(dòng)化日期等效的 DateTime。
GetDateTimeFormats 已重載。 將此實(shí)例的值轉(zhuǎn)換為標(biāo)準(zhǔn) DateTime 格式說明符支持的所有字符串表示形式。
GetHashCode 已重寫。 返回此實(shí)例的哈希代碼。
GetType 獲取當(dāng)前實(shí)例的 Type。 (從 Object 繼承。)
GetTypeCode 返回值類型 DateTime 的 TypeCode。
IsDaylightSavingTime 指示此 DateTime 實(shí)例是否在當(dāng)前時(shí)區(qū)的夏時(shí)制范圍內(nèi)。
IsLeapYear 返回指定的年份是否為閏年的指示。
op_Addition 將指定的時(shí)間間隔加到指定的日期和時(shí)間以生成新的日期和時(shí)間。
op_Equality 確定 DateTime 的兩個(gè)指定的實(shí)例是否相等。
op_GreaterThan 確定指定的 DateTime 是否大于另一個(gè)指定的 DateTime。
op_GreaterThanOrEqual 確定指定的 DateTime 是否大于或等于另一個(gè)指定的 DateTime。
op_Inequality 確定 DateTime 的兩個(gè)指定的實(shí)例是否不等。
op_LessThan 確定指定的 DateTime 是否小于另一個(gè)指定的 DateTime。
op_LessThanOrEqual 確定指定的 DateTime 是否小于或等于另一個(gè)指定的 DateTime。
op_Subtraction 已重載。 從指定的 DateTime 減去指定的 DateTime 或 TimeSpan。
Parse 已重載。 將日期和時(shí)間的指定字符串表示轉(zhuǎn)換成其等效的 DateTime。
ParseExact 已重載。 將日期和時(shí)間的指定字符串表示轉(zhuǎn)換成其等效的 DateTime。該字符串表示形式的格式必須與指定的格式完全匹配。
ReferenceEquals 確定指定的 Object 實(shí)例是否是相同的實(shí)例。 (從 Object 繼承。)
SpecifyKind 創(chuàng)建新的 DateTime 對(duì)象,該對(duì)象表示與指定的 DateTime 相同的時(shí)間,但是根據(jù)指定的 DateTimeKind 值的指示,指定為本地時(shí)間或協(xié)調(diào)通用時(shí)間 (UTC),或者兩者皆否。
Subtract 已重載。 從此實(shí)例中減去指定的時(shí)間或持續(xù)時(shí)間。
ToBinary 將當(dāng)前 DateTime 對(duì)象序列化為一個(gè) 64 位二進(jìn)制值,該值隨后可用于重新創(chuàng)建 DateTime 對(duì)象。
ToFileTime 將當(dāng)前 DateTime 對(duì)象的值轉(zhuǎn)換為 Windows 文件時(shí)間。
ToFileTimeUtc 將當(dāng)前 DateTime 對(duì)象的值轉(zhuǎn)換為 Windows 文件時(shí)間。
ToLocalTime 將當(dāng)前 DateTime 對(duì)象的值轉(zhuǎn)換為本地時(shí)間。
ToLongDateString 將此實(shí)例的值轉(zhuǎn)換為其等效的長(zhǎng)日期字符串表示形式。
ToLongTimeString 將此實(shí)例的值轉(zhuǎn)換為其等效的長(zhǎng)時(shí)間字符串表示形式。
ToOADate 將此實(shí)例的值轉(zhuǎn)換為等效的 OLE 自動(dòng)化日期。
ToShortDateString 將此實(shí)例的值轉(zhuǎn)換為其等效的短日期字符串表示形式。
ToShortTimeString 將此實(shí)例的值轉(zhuǎn)換為其等效的短時(shí)間字符串表示形式。
ToString 已重載。 已重寫。 將此實(shí)例的值轉(zhuǎn)換為其等效的字符串表示。
ToUniversalTime 將當(dāng)前 DateTime 對(duì)象的值轉(zhuǎn)換為協(xié)調(diào)通用時(shí)間 (UTC)。
TryParse 已重載。 將日期和時(shí)間的指定字符串表示轉(zhuǎn)換成其等效的 DateTime。
TryParseExact 已重載。 將日期和時(shí)間的指定字符串表示轉(zhuǎn)換成其等效的 DateTime。該字符串表示形式的格式必須與指定的格式完全匹配。
頁首
顯式接口實(shí)現(xiàn)
名稱 說明
System.IConvertible.ToBoolean 不支持此轉(zhuǎn)換。嘗試這樣做會(huì)引發(fā) InvalidCastException。
System.IConvertible.ToByte 不支持此轉(zhuǎn)換。嘗試這樣做會(huì)引發(fā) InvalidCastException。
System.IConvertible.ToChar 不支持此轉(zhuǎn)換。嘗試這樣做會(huì)引發(fā) InvalidCastException。
System.IConvertible.ToDateTime 返回當(dāng)前 DateTime 對(duì)象。
System.IConvertible.ToDecimal 不支持此轉(zhuǎn)換。嘗試這樣做會(huì)引發(fā) InvalidCastException。
System.IConvertible.ToDouble 不支持此轉(zhuǎn)換。嘗試這樣做會(huì)引發(fā) InvalidCastException。
System.IConvertible.ToInt16 不支持此轉(zhuǎn)換。嘗試這樣做會(huì)引發(fā) InvalidCastException。
System.IConvertible.ToInt32 不支持此轉(zhuǎn)換。嘗試這樣做會(huì)引發(fā) InvalidCastException。
System.IConvertible.ToInt64 不支持此轉(zhuǎn)換。嘗試這樣做會(huì)引發(fā) InvalidCastException。
System.IConvertible.ToSByte 不支持此轉(zhuǎn)換。嘗試這樣做會(huì)引發(fā) InvalidCastException。
System.IConvertible.ToSingle 不支持此轉(zhuǎn)換。嘗試這樣做會(huì)引發(fā) InvalidCastException。
System.IConvertible.ToType 將當(dāng)前的 DateTime 對(duì)象轉(zhuǎn)換為指定類型的對(duì)象。
System.IConvertible.ToUInt16 不支持此轉(zhuǎn)換。嘗試這樣做會(huì)引發(fā) InvalidCastException。
System.IConvertible.ToUInt32 不支持此轉(zhuǎn)換。嘗試這樣做會(huì)引發(fā) InvalidCastException。
System.IConvertible.ToUInt64 不支持此轉(zhuǎn)換。嘗試這樣做會(huì)引發(fā) InvalidCastException。
System.Runtime.Serialization.ISerializable.GetObjectData 使用序列化當(dāng)前 DateTime 對(duì)象所需要的數(shù)據(jù)來填充 SerializationInfo 對(duì)象。
頁首
請(qǐng)參見
參考
DateTime 結(jié)構(gòu)
VB.NET 中 HASHTABLE 的疑問
我們知道Hashtable 是線程安全的,可由多個(gè)讀取器線程或一個(gè)寫入線程使用。
它的特點(diǎn)是:通過節(jié)點(diǎn)的關(guān)鍵碼確定節(jié)點(diǎn)的存儲(chǔ)位置,即給定節(jié)點(diǎn)的關(guān)鍵碼k,通過一定的函數(shù)關(guān)系H(散列函數(shù)),得到函數(shù)值H(k),將此值解釋為該節(jié)點(diǎn)的存儲(chǔ)地址.
HashMap 與Hashtable很相似,但HashMap 是非同步(unsynchronizded)和可以以null為關(guān)鍵碼的.
我們知道在使用內(nèi)存中的地址時(shí)是按照哪里有空閑的就使用哪里的。怎么可能一直由著我們輸入的順序給你開放地址呢?
VB.net每種數(shù)據(jù)類型特點(diǎn)?
VB.NET數(shù)據(jù)類型VB.NET中有12種不同的數(shù)據(jù)類型,可以分成三類:數(shù)值類型、文本類型和混合類型。數(shù)值類型是VB.NET數(shù)據(jù)類型的主要類型,共7種。數(shù)值類型的數(shù)據(jù)類型見下表。 數(shù)據(jù)類型表示方式取 值 范 圍說 明整型Integer–2147483648~2147483647用于表示簡(jiǎn)單整數(shù)字節(jié)型Byte0~255用于簡(jiǎn)單算術(shù)運(yùn)算。由于這個(gè)類型的變量可以在一個(gè)字節(jié)中存儲(chǔ),所以運(yùn)算速度最快短整型Short–32768~32767是整型的一種形式,相對(duì)表示范圍較小長(zhǎng)整型Long–9223372036854775808~9223372036854775807是整型的一種形式,相對(duì)表示范圍較大單精
度型Single–3.402823E38~–1.401298E-45(對(duì)于負(fù)數(shù))和1.401298E-45~3.402823E38(對(duì)于正數(shù))用于存放單精度浮點(diǎn)數(shù)雙精
度型Double–1.79869313486232E308~–4.94065645841247E-324(對(duì)于負(fù)數(shù))和4.94065645841247E-324~1.79869313486232E308(對(duì)于正數(shù))用于存放雙精度浮點(diǎn)數(shù)小數(shù)Decimal當(dāng)小數(shù)位為0的時(shí)候,為–79228162514264337593543950335~
79228162514264337593543950335;當(dāng)小數(shù)位為28的時(shí)候,為–7.9228162514264337593543950335~
7.9228162514264337593543950335常用于存儲(chǔ)貨幣值 數(shù)值類型的數(shù)據(jù)類型 用于存放文本的數(shù)據(jù)類型有兩個(gè)。文本類型的VB.NET數(shù)據(jù)類型見下表。 數(shù) 據(jù) 類 型表 示 方 式說 明字符串型String用于存放任何形式的字符串,包括一個(gè)字符或者多行字符字符型Char用于存放一個(gè)字符,它以0~65535之間數(shù)字的形式存儲(chǔ)文本類型的數(shù)據(jù)類型 其中需要說明的是: (1) 對(duì)于String類型,可以存放任何形式的字符串,它可以是純粹的文本,也可以是文本和數(shù)字的組合或者是數(shù)字、日期等。例如"This is a book. "和"12345"都是字符串。對(duì)于字符串類型的數(shù)據(jù),可以進(jìn)行相關(guān)的字符串操作,例如連接、截?cái)嗟取?(2) 對(duì)于Char類型,可以存儲(chǔ)的只是一個(gè)字符,注意,這個(gè)字符的存儲(chǔ)編碼必需是一個(gè)數(shù)字。在計(jì)算機(jī)系統(tǒng)中,可以顯示很多符號(hào)(不僅僅是英文字母),為了能夠正確地顯示,國際上有通用的標(biāo)準(zhǔn)(例如Unicode編碼),為每個(gè)字符設(shè)定了一個(gè)標(biāo)準(zhǔn)的數(shù)值來表示這個(gè)字符。其余的數(shù)據(jù)類型還有:Date數(shù)據(jù)類型、布爾數(shù)據(jù)類型和Object數(shù)據(jù)類型,其說明見下表。 數(shù) 據(jù) 類 型表 示 方 式說 明日期型Date必須用mm/dd/yyyy的格式表示,也可以存儲(chǔ)時(shí)間(可以存儲(chǔ)00:00:00~23:59:59之間的任何時(shí)間)布爾型Boolean取值為True和False對(duì)象型Object 其他數(shù)據(jù)類型 其中需要說明的是:在VB.NET中,對(duì)于Boolean類型的數(shù)據(jù),當(dāng)需要把布爾類型的值轉(zhuǎn)換為數(shù)值類型的時(shí)候,會(huì)把True當(dāng)成1來處理,把False當(dāng)作0來處理。當(dāng)需要把VB.NET數(shù)值類型的值轉(zhuǎn)換為布爾類型的時(shí)候,會(huì)把0轉(zhuǎn)換為False,而把其他的非0數(shù)值轉(zhuǎn)換為True。
分享標(biāo)題:包含vb.net用哈希存儲(chǔ)的詞條
當(dāng)前鏈接:http://www.dlmjj.cn/article/docsees.html