Java, Only Java!

          統計

          留言簿(20)

          積分與排名

          好友空間

          文檔技巧

          閱讀排行榜

          評論排行榜

          《Java大學教程》—第17章 Java聚焦類框架

          由所有聚焦類構成,在java.util包中,包含三個重要接口:
          *    List列表:元素為單個對象,元素在列表中是有序、可重復
          *    Set集合:元素為單個對象,元素在集合中無序、不可重復
          *    Map映射:元素為成對對象(第一個對象是關鍵字,第二個對象是值),元素在映射中無序,關鍵字不可重復
          注:JCF不能存儲基本數據類型。

          17.2 List接口和ArrayList類
          *    ArrayList類
          *    LinkedList類

          17.2.1    泛型(generics):允許設定存在在特定聚焦類對象中的對象類型。可以將一個或多個類型作為參數發送到一個類(或接口)中,亦被稱為參數化類型。
          優點:允許編譯檢查類型;不必進行對象類型轉換;避免產生ClassCastException異常。

          17.2.2    使用接口類型代替實現類型作為函數的形參
          允許將來修改實現的方式而不必修改形參中對象的類型。

          17.2.3    List接口的方法
          操作:增加(add)?將元素插在列表的末尾;?將元素插入到列表中指定的位置。
          注:使用索引插入參數到列表中時,必須保證索引是當前列表中的有效位置
          修改(set)、刪除(delete)
          列表:顯示(toString)、總數(size)、是否空(isEmpty)
          元素:位置(indexOf)返回指定對象在列表中第一次出現時的索引。
          獲取(get)、存在(contains)

          17.3    增強的for循環:數組、List接口、Set接口
          不能用于修改或刪除原始集合中的元素,因為編譯可以通過,但是有可能導致程序結果不可預測。

          17.4    Set接口和HashSet類
          *    HashSet類
          *    TreeSet類

          17.4.1    Set接口的方法
          操作:增加和修改(add)、刪除(remove)
          列表:顯示(toString)、總數(size)、是否空(isEmpty)
          元素:獲取(get)、存在(contains)

          17.4.3    Iterator接口:用于修改和刪除Set中的元素
          使用Set對象中提供的Iterator對象。

          17.5    Map接口和HashMap類
          *    HashMap類
          *    TreeMap類

          Map接口的方法:
          操作:增加和修改(put)、刪除(remove)
          元素:關鍵字存在(containsKey)、值存在(containsValue)、值獲取(get)

          17.6    JCF中使用自定義類
          方法重寫:toString();    equals();    hashCode()

          自測題:
          1. 三種接口的區別:
          *    List列表:元素為單個對象,元素在列表中是有序、可重復
          *    Set集合:元素為單個對象,元素在集合中無序、不可重復
          *    Map映射:元素為成對對象(第一個對象是關鍵字,第二個對象是值),元素在映射中無序,關鍵字不可重復

          2.    Map<String, Student> javaStudents = new HashMap<String, Student>();
          a)    允許將來修改實現的方式而不必修改形參中對象的類型。

          b)    可以將一個或多個類型作為參數發送到一個類(或接口)中,亦被稱為參數化類型。
          優點:允許編譯檢查類型;不必進行對象類型轉換;避免產生ClassCastException異常。

          c)    javaStudents.put("U0012345","Fadi");
          javaStudents定義的是Student類型,不能接收String類型的數據。

          3.    StockItem類
          a)   

          public String toString(){
              return "("+stockNumber+","+name+","+price+","+totalStock+")\n";
          }

          b)

          public boolean equals(Object objIn){
              StockItem st = (StockItem) objIn;
              return stockNumber.equals(st.stockNumber);
          }

          c)

          public int hashCode(){
              return stockNumber.hashCode();
          }

          4.
          a)

          String tmpString;
              boolean first=true;
              if (regNums.size()==0){
                  tmpString="{}";
              } else {
                  StringBuilder sb = new StringBuilder();
                  for (String item: regNums){
                      if (first)    {
                          sb.append("{"+item);
                          first = false;
                      } else {
                          sb.append(","+item);
                      }
                  }
                  sb.append("}");
                  System.out.println(sb);

          b)
          Iterator<String> elements = regNums.iterator();
              while(elements.hasNext()){
                  String item = elements.next();
                  if (item.charAt(item.length()-1)=='S'
                      elements.remove();
              }

          編程練習:代碼附件
          1.    NameStack.java    NameStackException.java    NameStackTest.java
          a)    因為需要可變大小的存儲空間,而存儲的對象必須是有序的,但是是可以重復的。

          2.    CarRegister.java    CarRegisterException.java        CarRegisterTest.java
          a)    因為需要可變大小的存儲空間,而存儲的對象可以是無序的,但是必須惟一。

          3.    Book.java        Library.java    LibraryTest.java

          4.    Bank.java        BankAccount.java        BankTest.java
          a)    HashMap類適合代替數組實現Bank類。因為其可以滿足成對對象集合的需要,還可以確定關鍵字。

          posted on 2016-10-01 17:12 zYx.Tom 閱讀(438) 評論(0)  編輯  收藏 所屬分類: 1.Java世界

          主站蜘蛛池模板: 根河市| 琼中| 桦川县| 鄢陵县| 益阳市| 赤壁市| 岫岩| 买车| 兴仁县| 中阳县| 政和县| 紫云| 怀仁县| 鲁山县| 应城市| 伊吾县| 黔东| 台南县| 和林格尔县| 大洼县| 盘锦市| 沂水县| 益阳市| 上犹县| 分宜县| 乌拉特后旗| 灌云县| 蒙自县| 新安县| 舒兰市| 聂荣县| 牡丹江市| 西宁市| 屏南县| 永胜县| 博野县| 勃利县| 新密市| 宣汉县| 镇坪县| 柳河县|