public > public Main() {
}
public static void main(String[] args) {
HashMap hm = new HashMap();
hm.put("1", 11);
System.out.println(hm.get("1"));
}
}
用java1.5編譯時會出現:
註意:Main.java 使用了未經檢查或不安全的操作。
註意:要了解詳細信息,請使用-Xlint:unchecked 重新編譯。
出現這樣的警告是因為:
java1.5使用了泛型的緣故,作如下修改:
HashMap hm = new HashMap();
改成:
HashMap<String, Integer> hm = new HashMap<String, Integer>();
就可以了。
那什麽叫做泛型呢?
泛型編程讓妳編寫完全壹般化並可重復使用的算法,其效率與針對某特定數據類型而設計的算法相同。泛型編程的代表作品STL是壹種高效、泛型、可交互操作的軟件組件。所謂泛型(Genericity),是指具有在多種數據類型上皆可操作的含意,與模板有些相似。STL巨大,而且可以擴充,它包含很多計算機基本算法和數據結構,而且將算法與數據結構完全分離,其中算法是泛型的,不與任何特定數據結構或對象類型系在壹起。STL以叠代器(Iterators)和容器(Containers)為基礎,是壹種泛型算法(Generic Algorithms)庫,容器的存在使這些算法有東西可以操作。STL包含各種泛型算法(algorithms)、泛型指針(iterators)、泛型容器(containers)以及函數對象(function objects)。STL並非只是壹些有用組件的集合,它是描述軟件組件抽象需求條件的壹個正規而有條理的架構。
敢問是否是妳的jdk路徑設置不正確或是其他問題所致?在我機子上運行壹切正常,妳檢查下妳的jdk設置,還有就是轉到文件所在目錄執行javac和java命令,參考下面文章:
==================================================
JDK安裝設置環境變量
壹、前言
JDK(Java Development Kit )是壹切java應用程序的基礎,可以說,所有的java應用程序是構建在這個之上的。它是壹組API,也可以說是壹些java Class。目前已經正式發布的最新版本是JDK1.3。考慮到我對linux不熟悉,而且大多數都是在MS系統下,所以,在這裏我用的是win2000。
二、下載,安裝
下載地址為JAVA官方站點:java.sun.com,國內也到處都是。
Windows下,直接運行.exe文件,安裝到壹個目錄,我這裏用F:\jdk13作為例子。
三、配置
桌面上選擇“我的電腦”(右鍵)
高級
環境變量
在“系統變量”--->“新建”
在變量名中輸入:CLASSPATH,變量值中輸入:
F:\JDK13\LIB\dt.JAR;F:\JDK13\LIB\TOOLS.JAR;F:\JDK13\BIN;然後確定;
好了,配置完了,要重新啟動計算機後,環境變量才能有效的。
四、測試
(1)用文本編輯器寫壹個簡單的java程序:
public class HelloWorld {
public static void main(String args[]) {
System.out.println("Hello World!");
}
}
這個例子就是著名的“Hello World”,它的功能就是顯示“Hello World”。
註意:該文件名稱必須為“HelloWorld.java”,大小寫也區分。細心的朋友會註意到就是和public class後的名字壹樣的。
(2)編譯:在dos命令提示符下執行:(註意大小寫)
javac HelloWorld.java
如果正常的話,將生成HelloWorld.class文件。
(3)運行:在dos命令提示符下執行:(註意大小寫)
java HelloWorld
這裏有壹個java初學者很有可能遇到的問題(不怕笑話,我也是)就是輸入:
java HelloWorld.class
多了後面的.class,壹定要註意,否則會出現下面的錯誤:
Exception in thread "main" java.lang.NoClassDefFoundError:HelloWorld/class
(本人猜想,是不是java翻譯“.”的時候換成了“/”,或者是其他的本人不知道的原因)
好了,運行java HelloWorld應該會出現偉大的“Hello World”了。
到這壹步,妳已經成功配置好了JDK,可以開始漫長而痛苦(對於象我壹樣的,以前不懂java的朋友來說,可以用“痛苦”來形容,不理解的概念,不熟悉的java api...,不過,不要急,我將和大家壹起慢慢入門,慢慢提高... ...)的Java過程了。