日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 怎么用 string method return数量_java教程之Map应该怎么用

發(fā)布時(shí)間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 怎么用 string method return数量_java教程之Map应该怎么用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

java教程之Map應(yīng)該怎么用

在自學(xué)或者看java教程的時(shí)候,大家多多少少都存在著這樣或者那樣的疑惑,對于這些中軟國際小編一直也在整理,今天為大家獻(xiàn)上的是關(guān)于Map應(yīng)該怎樣去用的一些方法,還是跟過去一樣,在這里,小編提供的希望大家把它看成是思路,在技術(shù)的道路上還是需要不斷的探索,自行研究才能最終體會(huì)到這門語言的偉大與迷人之處。

下面言歸正傳:

Map與Collection不同,Map中保存的是鍵值對,Key值不允許重復(fù),而Collection中保存的是單個(gè)對象。Map接口中主要的方法有:

(1)V put(K key,V value)

該方法可以將key和value存到Map對象中。如果key已經(jīng)存在,則被覆蓋,返回被覆蓋前的value。如果key不存在,則返回null。

(2)V get(Object key)

該方法可以根據(jù)key值返回對應(yīng)的value。

(3)int size()

返回Map對象中鍵值對的數(shù)量。

(4)Set keySet()

將Map對象中的key值取出,返回到Set對象中。

(5)Collection values()

將Map對象中的value值取出,返回到Collection對象中。

Map是接口,無法直接實(shí)例化對象,所以要使用Map必須通過Map的實(shí)現(xiàn)類創(chuàng)建對象。下面介紹Map接口的4個(gè)主要實(shí)現(xiàn)類。

1)HashMap

HashMap是Map類的一個(gè)常用實(shí)現(xiàn)類,HashMap根據(jù)key值的hashCode和equals方法判斷其是否唯一,與HashSet中保證元素唯一性的方式相同,請參考HashSet章節(jié)。如下代碼所示:

package com.etc.chapter14;

import java.util.HashMap;

import java.util.Set;

public class TestHashMap {

publicstatic void main(String[] args) {

// TODO Auto-generated method stub

Player player1=newPlayer("110-999","Kate");

Player player2=newPlayer("110-888","Grace");

Team team1=new Team("China");

Team team2=new Team("USA");

HashMap map=newHashMap();

map.put(player1, team1);

map.put(player2, team2);

Set set=map.keySet();

for(Player p:set){

System.out.println(map.get(p).getName());

}}}

上述代碼中,首先使用HashMap存儲(chǔ)Player和Team之間的映射關(guān)系,使用put方法將兩對鍵值對存儲(chǔ)到了一個(gè)HashMap對象中。然后通過Map的keySet方法將Map的key值轉(zhuǎn)換為一個(gè)Set對象,進(jìn)一步使用增強(qiáng)for循環(huán),根據(jù)key值迭代所有value值。運(yùn)行結(jié)果如下:

China

USA

2)TreeMap

TreeMap是Map的一個(gè)實(shí)現(xiàn)類,不僅能保證Key值唯一,還能根據(jù)key值進(jìn)行排序。TreeMap的key必須實(shí)現(xiàn)Comparable接口,實(shí)現(xiàn)compareTo方法。TreeMap根據(jù)compareTo的邏輯,對key進(jìn)行排序。具體方式與TreeSet的排序邏輯相同,請參考TreeSet章節(jié)。

修改key值的類型Player類,實(shí)現(xiàn)Comparable接口,覆蓋compareTo方法,如下代碼所示:

package com.etc.chapter14;

public class Player implementsComparable{

privateString id;

privateString name;

//省略其他代碼

public intcompareTo(Player arg0) {

// TODO Auto-generated method stub

return this.id.compareTo(arg0.id);

}}

上述代碼中,Player類實(shí)現(xiàn)了Comparable接口,覆蓋了compareTo方法,方法中根據(jù)Player的id值的字典順序進(jìn)行比較。使用下面代碼測試:

package com.etc.chapter14;

public class TestTreeMap {

publicstatic void main(String[] args) {

Player player1=new Player("110-999","Kate");

Player player2=newPlayer("110-888","Grace");

Team team1=new Team("China");

Team team2=new Team("USA");

TreeMap map=newTreeMap();

map.put(player1, team1);

map.put(player2, team2);

Set set=map.keySet();

for(Player p:set){

System.out.println(map.get(p).getName());

}

}

}

上述代碼中將兩組鍵值對存儲(chǔ)到了一個(gè)TreeMap中,運(yùn)行結(jié)果為:

USA

China

因?yàn)镻layer類的compareTo方法根據(jù)Player的id屬性的字典順序進(jìn)行排序,所以TreeMap也根據(jù)Player的id屬性的字典順序排序。

3)Hashtable

Hashtable與Vector類似,也是一個(gè)“歷史悠久”的類。Hashtable是JDK1.0版本中就存在的類。目前Hashtable實(shí)現(xiàn)了Map接口。Hashtable的功能可以完全被HashMap替代,主要區(qū)別在于Hashtable是同步對象,而HashMap不是同步的。

4)Properties

Properites類是Hashtable類的子類,所以也間接地實(shí)現(xiàn)了Map接口。在實(shí)際應(yīng)用中,常使用Properties類對屬性文件進(jìn)行處理。該功能需要使用到IO包的API,IO相關(guān)知識點(diǎn)請參見IO章節(jié)。假設(shè)有如下屬性文件db.properties:

username=root

password=123

可以使用Properties對象的load方法,將屬性文件加載到Properties對象中,然后調(diào)用Properties對象的getProperty方法通過key值獲得對應(yīng)的value值。如下代碼所示:

package com.etc.chapter14;

public class TestProperties {

public static void main(String[] args) {

Properties props=new Properties();

try {

props.load(new FileInputStream(newFile("db.properties")));

System.out.println(props.getProperty("username"));

System.out.println(props.getProperty("password"));

} catch (FileNotFoundException e) {

// TODOAuto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODOAuto-generated catch block

e.printStackTrace();

}}}

運(yùn)行結(jié)果如下:

root

123

Map接口的主要實(shí)現(xiàn)類有HashMap、TreeMap、Hashtable、Properties。Map中的key值不能重復(fù),其中TreeMap的key值不僅不重復(fù),而且能根據(jù)key值排序。Hashtable類可以完全被HashMap類替代,唯一區(qū)別在于Hashtable類是同步的。Properties類主要用于處理屬性文件。

好了,這次的內(nèi)容不知道大家看了以后有沒有更加清晰明了一點(diǎn)呢,如果沒有,點(diǎn)擊官網(wǎng)看更多關(guān)于java教程的詳細(xì)講解吧。

java教程http://csetc.chinasofti.com/ java教程

總結(jié)

以上是生活随笔為你收集整理的java 怎么用 string method return数量_java教程之Map应该怎么用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。