代碼片段和文件信息
package?net.jcip.examples;
import?java.util.*;
/**
?*?Animals
?*?
?*?Thread?confinement?of?local?primitive?and?reference?variables
?*
?*?@author?Brian?Goetz?and?Tim?Peierls
?*/
public?class?Animals?{
????Ark?ark;
????Species?species;
????Gender?gender;
????public?int?loadTheArk(Collection?candidates)?{
????????SortedSet?animals;
????????int?numPairs?=?0;
????????Animal?candidate?=?null;
????????//?animals?confined?to?method?don‘t?let?them?escape!
????????animals?=?new?TreeSet(new?SpeciesGenderComparator());
????????animals.addAll(candidates);
????????for?(Animal?a?:?animals)?{
????????????if?(candidate?==?null?||?!candidate.isPotentialMate(a))
????????????????candidate?=?a;
????????????else?{
????????????????ark.load(new?AnimalPair(candidate?a));
????????????????++numPairs;
????????????????candidate?=?null;
????????????}
????????}
????????return?numPairs;
????}
????class?Animal?{
????????Species?species;
????????Gender?gender;
????????public?boolean?isPotentialMate(Animal?other)?{
????????????return?species?==?other.species?&&?gender?!=?other.gender;
????????}
????}
????enum?Species?{
????????AARDVARK?BENGAL_TIGER?CARIBOU?DINGO?ELEPHANT?FROG?GNU?HYENA
????????IGUANA?JAGUAR?KIWI?LEOPARD?MASTADON?NEWT?OCTOPUS
????????PIRANHA?QUETZAL?RHINOCEROS?SALAMANDER?THREE_TOED_SLOTH
????????UNICORN?VIPER?WEREWOLF?XANTHUS_HUMMINBIRD?YAK?ZEBRA
????}
????enum?Gender?{
????????MALE?FEMALE
????}
????class?AnimalPair?{
????????private?final?Animal?one?two;
????????public?AnimalPair(Animal?one?Animal?two)?{
????????????this.one?=?one;
????????????this.two?=?two;
????????}
????}
????class?SpeciesGenderComparator?implements?Comparator?{
????????public?int?compare(Animal?one?Animal?two)?{
????????????int?speciesCompare?=?one.species.compareTo(two.species);
????????????return?(speciesCompare?!=?0)
??????????????????????speciesCompare
????????????????????:?one.gender.compareTo(two.gender);
????????}
????}
????class?Ark?{
????????private?final?Set?loadedAnimals?=?new?HashSet();
????????public?void?load(AnimalPair?pair)?{
????????????loadedAnimals.add(pair);
????????}
????}
}
評論
共有 條評論
相關(guān)資源
- 微博系統(tǒng)(Java源碼,servlet+jsp),適
- java串口通信全套完整代碼-導(dǎo)入eclip
- jsonarray所必需的6個jar包.rar
- 三角網(wǎng)構(gòu)TIN生成算法,Java語言實現(xiàn)
- java代碼編寫將excel數(shù)據(jù)導(dǎo)入到mysql數(shù)據(jù)
- Java寫的cmm詞法分析器源代碼及javacc學(xué)
- JAVA JSP公司財務(wù)管理系統(tǒng) 源代碼 論文
- JSP+MYSQL旅行社管理信息系統(tǒng)
- 推薦算法的JAVA實現(xiàn)
- 基于Java的酒店管理系統(tǒng)源碼(畢業(yè)設(shè)
- java-圖片識別 圖片比較
- android畢業(yè)設(shè)計
- java23種設(shè)計模式+23個實例demo
- java Socket發(fā)送/接受報文
- JAVA828436
- java界面美化 提供多套皮膚直接使用
- 在線聊天系統(tǒng)(java代碼)
- 基于Java的圖書管理系統(tǒng)807185
- java中實現(xiàn)將頁面數(shù)據(jù)導(dǎo)入Excel中
- java 企業(yè)銷售管理系統(tǒng)
- java做的聊天系統(tǒng)(包括正規(guī)課程設(shè)計
- Java編寫的qq聊天室
- 商店商品管理系統(tǒng) JAVA寫的 有界面
- JAVA開發(fā)聊天室程序
- 在linux系統(tǒng)下用java執(zhí)行系統(tǒng)命令實例
- java期末考試試題兩套(答案) 選擇(
- JAVA3D編程示例(建模、交互)
- Java 文件加密傳輸
- java做的房產(chǎn)管理系統(tǒng)
- 基于jsp的bbs論壇 非常詳細(xì)