麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

使用Maps

2019-11-18 13:22:33
字體:
供稿:網(wǎng)友

  
使用Maps


  Map(接口) 維持“鍵-值”對應(yīng)關(guān)系(對),以便通過一個鍵查找相應(yīng)的值
  HashMap* 基于一個散列表實現(xiàn)(用它代替Hashtable)。針對“鍵-值”對的插入和檢索,這種形式具有最穩(wěn)定的性能。可通過構(gòu)建器對這一性能進行調(diào)整,以便設(shè)置散列表的“能力”和“裝載因子”
  ArrayMap 由一個ArrayList后推得到的Map。對反復(fù)的順序提供了精確的控制。面向非常小的Map設(shè)計,非凡是那些需要經(jīng)常創(chuàng)建和刪除的。對于非常小的Map,創(chuàng)建和反復(fù)所付出的代價要比HashMap低得多。但在Map變大以后,性能也會相應(yīng)地大幅度降低
  TreeMap 在一個“紅-黑”樹的基礎(chǔ)上實現(xiàn)。查看鍵或者“鍵-值”對時,它們會按固定的順序排列(取決于Comparable或Comparator,稍后即會講到)。TreeMap最大的好處就是我們得到的是已排好序的結(jié)果。TreeMap是含有subMap()方法的唯一一種Map,利用它可以返回樹的一部分
  
  下例包含了兩套測試數(shù)據(jù)以及一個fill()方法,利用該方法可以用任何兩維數(shù)組(由Object構(gòu)成)填充任何Map。這些工具也會在其他Map例子中用到。
  
  //: Map1.java
  // Things you can do with Maps
  package c08.newcollections;
  import java.util.*;
  
  public class Map1 {
   public final static String[][] testData1 = {
  { "Happy", "Cheerful disposition" },
  { "Sleepy", "PRefers dark, quiet places" },
  { "Grumpy", "Needs to work on attitude" },
  { "Doc", "Fantasizes about advanced degree"},
  { "Dopey", "'A' for effort" },
  { "Sneezy", "Struggles with allergies" },
  { "Bashful", "Needs self-esteem workshop"},
   };
   public final static String[][] testData2 = {
  { "Belligerent", "Disruptive influence" },
  { "Lazy", "Motivational problems" },
  { "Comatose", "Excellent behavior" }
   };
   public static Map fill(Map m, Object[][] o) {
  for(int i = 0; i < o.length; i++)
   m.put(o[i][0], o[i][1]);
  return m;
   }
   // ProdUCing a Set of the keys:
   public static void printKeys(Map m) {
  System.out.print("Size = " + m.size() +", ");
  System.out.print("Keys: ");
  Collection1.print(m.keySet());
   }
   // Producing a Collection of the values:
   public static void printValues(Map m) {
  System.out.print("Values: ");
  Collection1.print(m.values());
   }
   // Iterating through Map.Entry objects (pairs):
   public static void print(Map m) {
  Collection entries = m.entries();
  Iterator it = entries.iterator();
  while(it.hasNext()) {
   Map.Entry e = (Map.Entry)it.next();
   System.out.println("Key = " + e.getKey() +
    ", Value = " + e.getValue());
  }
   }
   public static void test(Map m) {
  fill(m, testData1);
  // Map has 'Set' behavior for keys:
  fill(m, testData1);
  printKeys(m);
  printValues(m);
  print(m);
  String key = testData1[4][0];
  String value = testData1[4][1];
  System.out.println("m.containsKey(/"" + key +
   "/"): " + m.containsKey(key));
  System.out.println("m.get(/"" + key + "/"): "
   + m.get(key));
  System.out.println("m.containsValue(/""
   + value + "/"): " +
   m.containsValue(value));
  Map m2 = fill(new TreeMap(), testData2);
  m.putAll(m2);
  printKeys(m);
  m.remove(testData2[0][0]);
  printKeys(m);
  m.clear();
  System.out.println("m.isEmpty(): "
   + m.isEmpty());
  fill(m, testData1);
  // Operations on the Set change the Map:
  m.keySet().removeAll(m.keySet());
  System.out.println("m.isEmpty(): "
   + m.isEmpty());
   }
   public static void main(String args[]) {
  System.out.println("Testing HashMap");
  test(new HashMap());
  System.out.println("Testing TreeMap");
  test(new TreeMap());
   }
  } ///:~
  
  printKeys(),printValues()以及print()方法并不只是有用的工具,它們也清楚地揭示了一個Map的Collection“景象”的產(chǎn)生過程。keySet()方法會產(chǎn)生一個Set,它由Map中的鍵后推得來。在這兒,它只被當作一個Collection對待。values()也得到了類似的對待,它的作用是產(chǎn)生一個List,其中包含了Map中的所有值(注重鍵必須是獨一無二的,而值可以有重復(fù))。由于這些Collection是由Map后推得到的,所以一個Collection中的任何改變都會在相應(yīng)的Map中反映出來。
  print()方法的作用是收集由entries產(chǎn)生的Iterator(反復(fù)器),并用它同時打印出每個“鍵-值”對的鍵和值。程序剩余的部分提供了每種Map操作的簡單示例,并對每種類型的Map進行了測試。
  當創(chuàng)建自己的類,將其作為Map中的一個鍵使用時,必須注重到和以前的Set相同的問題。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 日韩中字在线 | 成人在线免费小视频 | 成人福利电影在线观看 | 黄色免费在线电影 | 欧美在线观看禁18 | 欧美激情精品久久久久久黑人 | 成人一级黄色大片 | 久久精品首页 | 免费色片 | 一二区成人影院电影网 | 色妹子久久 | 精品国产一区二区三区四区在线 | 中文字幕免费在线观看视频 | 一级大黄毛片免费观看 | 欧美成人一区免费视频 | 免费一级a毛片免费观看 | 午夜精品福利视频 | 亚洲精品无码不卡在线播放he | 国产高潮失禁喷水爽到抽搐视频 | 久久99精品久久久久久国产越南 | 午夜爽爽爽男女免费观看hd | 国产一区二区三区四区在线 | 777zyz色资源站在线观看 | 福利四区 | 一区在线视频观看 | 日韩精品中文字幕一区二区 | 毛片一区二区三区四区 | 免费午夜网站 | 精品亚洲视频在线 | 欧美成网站 | 日韩精品一区二 | 国产 日韩 亚洲 欧美 | 久久久久一本一区二区青青蜜月 | 日本a∨精品中文字幕在线 狠狠干精品视频 | 国产亚洲精品成人 | 国产精品久久久久影院老司 | 久成人| 最新一区二区三区 | 国产精品久久久久久久久久iiiii | 久久国产一二区 | 国产精品刺激对白麻豆99 |