亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

使用Sets

2019-11-18 13:22:30
字體:
來源:轉載
供稿:網友

  Set擁有與Collection完全相同的接口,所以和兩種不同的List不同,它沒有什么額外的功能。相反,Set完全就是一個Collection,只是具有不同的行為(這是實例和多形性最理想的應用:用于表達不同的行為)。在這里,一個Set只答應每個對象存在一個實例(正如大家以后會看到的那樣,一個對象的“值”的構成是相當復雜的)。
  
使用Sets


  Set(接口) 添加到Set的每個元素都必須是獨一無二的;否則Set就不會添加重復的元素。添加到Set里的對象必須定義equals(),從而建立對象的唯一性。Set擁有與Collection完全相同的接口。一個Set不能保證自己可按任何特定的順序維持自己的元素
  HashSet* 用于除非常小的以外的所有Set。對象也必須定義hashCode()
  ArraySet 由一個數組后推得到的Set。面向非常小的Set設計,非凡是那些需要頻繁創建和刪除的。對于小Set,與HashSet相比,ArraySet創建和反復所需付出的代價都要小得多。但隨著Set的增大,它的性能也會大打折扣。不需要HashCode()
  TreeSet 由一個“紅黑樹”后推得到的順序Set(注釋⑦)。這樣一來,我們就可以從一個Set里提到一個順序集合
  
 ?、撸褐敝帘緯鴮懽鞯臅r候,TreeSet仍然只是公布,尚未正式實現。所以這里沒有提供使用TreeSet的例子。
  
  下面這個例子并沒有列出用一個Set能夠做的全部事情,因為接口與Collection是相同的,前例已經練習過了。相反,我們要例示的重點在于使一個Set獨一無二的行為:
  
  //: Set1.java
  // Things you can do with Sets
  package c08.newcollections;
  import java.util.*;
  
  public class Set1 {
   public static void testVisual(Set a) {
  Collection1.fill(a);
  Collection1.fill(a);
  Collection1.fill(a);
  Collection1.PRint(a); // No duplicates!
  // Add another set to this one:
  a.addAll(a);
  a.add("one");
  a.add("one");
  a.add("one");
  Collection1.print(a);
  // Look something up:
  System.out.println("a.contains(/"one/"): " +
   a.contains("one"));
   }
   public static void main(String[] args) {
  testVisual(new HashSet());
  testVisual(new TreeSet());
   }
  } ///:~
  
  重復的值被添加到Set,但在打印的時候,我們會發現Set只接受每個值的一個實例。
  運行這個程序時,會注重到由HashSet維持的順序與ArraySet是不同的。這是由于它們采用了不同的方法來保存元素,以便它們以后的定位。ArraySet保持著它們的順序狀態,而HashSet使用一個散列函數,這是非凡為快速檢索設計的)。創建自己的類型時,一定要注重Set需要通過一種方式來維持一種存儲順序,就象本章早些時候展示的“groundhog”(土拔鼠)例子那樣。下面是一個例子:
  
  //: Set2.java
  // Putting your own type in a Set
  package c08.newcollections;
  import java.util.*;
  
  class MyType implements Comparable {
   private int i;
   public MyType(int n) { i = n; }
   public boolean equals(Object o) {
  return
   (o instanceof MyType)
   && (i == ((MyType)o).i);
   }
   public int hashCode() { return i; }
   public String toString() { return i + " "; }
   public int compareTo(Object o) {
  int i2 = ((MyType) o).i;
  return (i2 < i ? -1 : (i2 == i ? 0 : 1));
   }
  }
  
  public class Set2 {
   public static Set fill(Set a, int size) {
  for(int i = 0; i < size; i++)
   a.add(new MyType(i));
  return a;
   }
   public static Set fill(Set a) {
  return fill(a, 10);
   }
   public static void test(Set a) {
  fill(a);
  fill(a); // Try to add duplicates
  fill(a);
  a.addAll(fill(new TreeSet()));
  System.out.println(a);
   }
   public static void main(String[] args) {
  test(new HashSet());
  test(new TreeSet());
   }
  } ///:~
  
  對equals()及hashCode()的定義遵照“groundhog”例子已經給出的形式。在兩種情況下都必須定義一個equals()。但只有要把類置入一個HashSet的前提下,才有必要使用hashCode()——這種情況是完全有可能的,因為通常應先選擇作為一個Set實現。

上一篇:使用Lists

下一篇:決定實施方案

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产区精品在线观看| 欧美激情一区二区三区久久久| 国产午夜精品理论片a级探花| 久久九九亚洲综合| 日韩精品在线电影| 尤物yw午夜国产精品视频明星| 日韩欧美在线一区| 国内免费精品永久在线视频| 欧美在线激情网| 亚洲电影免费在线观看| 丝袜情趣国产精品| 欧美精品xxx| 久久在线免费视频| 国产精品第10页| 亚洲三级 欧美三级| 精品电影在线观看| 成人黄色在线观看| 久久久久日韩精品久久久男男| 国产欧美va欧美va香蕉在| 国产一区二区三区18| 亚洲欧美制服第一页| 欧美久久久精品| www.久久撸.com| 国产伦精品一区二区三区精品视频| 亚洲美女又黄又爽在线观看| 成人免费看吃奶视频网站| 热草久综合在线| 欧美电影免费播放| 亚洲人成啪啪网站| 成人黄色av免费在线观看| 国产精品av网站| 97视频在线观看亚洲| 亚洲欧美综合区自拍另类| 日韩免费观看高清| 一区二区三区日韩在线| 亚洲精品一区二区网址| 国产一区二区免费| 久久香蕉精品香蕉| 日韩精品免费电影| 久久夜色精品国产欧美乱| 国产欧美精品日韩| 欧美性高潮在线| 欧美黑人性视频| 日韩女在线观看| 青草青草久热精品视频在线观看| 91天堂在线视频| 97国产真实伦对白精彩视频8| 欧美人与物videos| 亚洲午夜未满十八勿入免费观看全集| 中文字幕亚洲第一| 日韩欧美第一页| 91影院在线免费观看视频| 欧美黑人性视频| 亚洲综合自拍一区| 欧美一乱一性一交一视频| 国产免费一区二区三区香蕉精| 成人激情视频小说免费下载| 91系列在线播放| 色老头一区二区三区| 欧美另类暴力丝袜| 久久频这里精品99香蕉| www.亚洲一二| 亚洲图片欧美午夜| 68精品久久久久久欧美| 日韩电影免费在线观看中文字幕| 国产成人精品免高潮在线观看| 中文字幕国产精品久久| 国产999在线观看| 中文字幕亚洲综合久久筱田步美| 97国产精品视频| 日韩在线观看视频免费| 日本三级久久久| 成人激情在线播放| 国产精品女人网站| 精品视频一区在线视频| 日韩精品www| 国产免费一区二区三区在线能观看| 日韩中文在线观看| 欧美另类极品videosbestfree| 国产91成人在在线播放| 91精品国产自产在线| 久久99精品久久久久久噜噜| 国产精品嫩草影院久久久| 欧美成人免费播放| 欧美电影免费看| 久久久精品视频成人| 国产精品第3页| 国产亚洲欧美一区| 成人黄色av网站| 亚洲美女av在线| 久久精品视频中文字幕| 亚洲老头老太hd| 欧美激情在线有限公司| 亚洲一区第一页| 国产精品都在这里| 日本国产一区二区三区| 上原亚衣av一区二区三区| 成人午夜两性视频| 大胆人体色综合| 日韩国产在线播放| 成人网在线免费观看| 亚洲人午夜精品免费| 日本成人在线视频网址| 一区二区三区无码高清视频| 国产精品视频自拍| 亚洲第一精品夜夜躁人人躁| 久久久久国产精品免费| 亚洲国产成人一区| 成人在线精品视频| 亚洲2020天天堂在线观看| 国产亚洲欧美视频| 国产精品专区h在线观看| 亚洲欧洲黄色网| 欧美国产极速在线| 国产精品自拍视频| 久久国产加勒比精品无码| 91在线观看免费网站| 欧美日韩免费在线观看| 中文字幕亚洲专区| 亚洲国产成人久久| 久久综合九色九九| 亚洲色图综合久久| 欧美一区三区三区高中清蜜桃| 亚洲第一免费播放区| 亚洲欧洲在线播放| 久久久女女女女999久久| 国产亚洲欧美aaaa| 日韩精品在线观看网站| 亚洲国产高潮在线观看| 亚洲视频第一页| 久久中文字幕在线视频| 色综合色综合网色综合| 97不卡在线视频| 亚洲毛片在线看| 欧美激情一区二区三区在线视频观看| 国内精品久久久久影院 日本资源| 久久av.com| 青青久久aⅴ北条麻妃| 国产精品成久久久久三级| 欧美激情精品久久久久久变态| 九九精品在线观看| 在线视频日韩精品| 欧美成aaa人片在线观看蜜臀| 欧美高清视频在线播放| 91av在线精品| 成人激情视频在线观看| 日本成人在线视频网址| 国产精品视频精品| 日韩欧美高清视频| 尤物九九久久国产精品的分类| 久久国产精品久久久久| 亚洲精品ady| 亚洲高清在线观看| 91香蕉嫩草神马影院在线观看| 日韩精品在线免费观看视频| 中文字幕日本精品| 黄色成人在线播放| 三级精品视频久久久久| 国产成人精品久久亚洲高清不卡| 亚洲精品在线不卡| 青青草原成人在线视频| 色综合亚洲精品激情狠狠| 久久中文字幕一区| 国产精品91久久久|