亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求問TreeSet的賦值問題。上面的是類,下面的是主函數?

求問TreeSet的賦值問題。上面的是類,下面的是主函數?

大話西游666 2022-03-19 12:08:54
一個轉盤游戲的小程序。package collection4; //類public class Gift {private String name;private int jifeng;public Gift(String Name,int Jifeng){ //構造方法給屬性賦值this.name=Name;this.jifeng=Jifeng;}public int random(){ //一個生成隨機數的方法int a=(int) (Math.random()*10);return a;}}package collection4; //主函數import java.util.Iterator;import java.util.Scanner;import java.util.TreeSet;public class Game {public static void main(String args[]){Gift gift=new Gift(null, 0); //生成隨機數Scanner in=new Scanner(System.in);TreeSet<Gift> g=new TreeSet<Gift>();g.add(new Gift("打波",5)); // 事先輸入獎品,出問題的地方g.add(new Gift("抱抱",4)); //下面也一樣g.add(new Gift("交杯酒",3));g.add(new Gift("拋媚眼",2));g.add(new Gift("滾床單",6));boolean flag=true;while(flag){System.out.println("輸入選擇:1 :查看獎品 2: 開始游戲 3 退出游戲");char choose=in.next().charAt(0);switch(choose){case'1':Iterator<Gift> a=g.iterator();while(a.hasNext()){System.out.println(a.next());}break;case'2':break;case'3':flag=false;break;default:System.out.println("您的輸入有誤");}}}}
查看完整描述

1 回答

?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

TreeSet 是排序的 Set,要求你添加進去的東西本身支持排序,也就是:

  1. 要么實現了 java.lang.Comparable 接口

  2. 要么你在創建 TreeSet 時提供一個 java.util.Comparator 來告訴 TreeSet 排序的方法由這個 comparator 來處理。

如果你并沒有排序的必要的話,可以考慮用 HashSet 之類的,如果你只是希望“有序”而不是“排序”的話,還可以考慮 LinkedHashSet,比如,你希望迭代打印出獎品時顯示的順序跟你把它們添加到集合中的順序相同時就可以用 LinkedHashSet,這里如果 TreeSet  的話它會每次修改時可能重新排序數據來保證數據是有序的,例如假定你的 Gift 排序的依據是 jifeng 值從低到高,那么使用 TreeSet 時將會讓對象的積分從低到高 2, 3, 4, 5, 6 輸出,但使用 LinkedHashSet 依然會像它原來那樣 5, 4, 3, 2, 6 輸出。



查看完整回答
反對 回復 2022-03-23
  • 1 回答
  • 0 關注
  • 152 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號