वाली एक सूची को सॉर्ट करें, इसलिए मैं वर्तमान में कॉलेज के लिए एक अभ्यास कर रहा हूं जिसमें कई वैकल्पिक भाग हैं (क्योंकि हमने अभी तक कक्षा में ऐसा नहीं किया है), उनमें से एक सरणी के बजाय सूचियों का उपयोग करना है (तो यह परिवर्तनीय आकार होगा) और कोई अन्य बिंदुओं द्वारा क्रमबद्ध सूची प्रिंट कर रहा है (मुझे अब मिल जाएगा)एक कस्टम श्रेणी
तो, मेरे पास प्लेयर.जावा क्लास है जो इस तरह दिखता है।
public class Player {
String name;
String password;
int chips;
int points;
public Player (String n, String pw, int c, int p) {
name = n;
password = pw;
chips = c;
points = p;
}
public String getName() {
return name;
}
public void setName (String n) {
name = n;
}
public void setPW (String pw) {
password = pw;
}
public String getPW() {
return password;
}
public void setChips (int c) {
chips = c;
}
public int getChips() {
return chips;
}
public void setPoints (int p) {
points = p;
}
public int getPoints() {
return points;
}
}
सुंदर सरल, तो मैं एक इस के साथ सूची (किसी अन्य वर्ग में) बना रहा हूं:
इस के साथList<Player> lplayer = new ArrayList<Player>();
जोड़ना खिलाड़ियों:
lplayer.add(new Player(n,pw,c,p))`
और अंततः इसके साथ अपने आंकड़े पढ़ रहे हैं:
public int search_Player (String n) {
String name;
int i = 0;
boolean found = false;
while ((i <= tp) && (!found)) {
name = lplayer.get(i).getName();
if (name.equals(n)) {
found = true;
}
i++;
}
return (found == true) ? i-1 : -1;
}
public Player show_Player (int i) {
return lplayer.get(i);
}
public void list_Players() {
Collections.sort(lplayer);
int i2;
if (tp > 0) { // variable which contains number of total players
for (int i = 0;i<tp;i++) {
i2 = i+1;
System.out.println ("\n"+i2+". "+lplayer.get(i).getName()+" [CHIPS: "+lplayer.get(i).getChips()+" - POINTS: "+lplayer.get(i).getPoints()+"]");
}
}
else {
System.out.println ("There are no players yet.");
}
}
तो यह मूल रूप से सभी कोड है। जैसा कि आप देख सकते हैं कि मेरे पास पहले से ही एक सूची_Players फ़ंक्शन है लेकिन यह इसे उस क्रम में प्रिंट करता है जो इसे जोड़ा गया था। मुझे प्रत्येक खिलाड़ी के अंक से क्रमबद्ध करने के लिए एक तरीका चाहिए (इसलिए मूल रूप से एक रैंकिंग)।
जैसा कि आप देख सकते हैं कि मैं जावा के लिए बहुत नया हूं इसलिए कृपया इसे करने के एक बहुत ही जटिल तरीके से आने की कोशिश न करें।
मैंने पहले से ही इसकी खोज की है और Collections.sort (सूची) जैसी चीजें पाई हैं, लेकिन मुझे लगता है कि मुझे वही नहीं चाहिए जो मुझे चाहिए।
धन्यवाद!
आपको निश्चित रूप से 'संग्रह .sort' की आवश्यकता है। यदि आपको केवल स्कोर द्वारा सॉर्ट करने की आवश्यकता है और कोई अन्य मानदंड नहीं है, तो 'पब्लिक क्लास प्लेयर' तुलनात्मक 'लागू करें और आवश्यक विधि लागू करें। –
यदि आपको 'वेरिएबल जैसी सरल चीज़ों पर टिप्पणी करने की आवश्यकता है जिसमें कुल खिलाड़ियों की संख्या शामिल है' तो आपको वास्तव में बेहतर चर नामों का उपयोग करने की आवश्यकता है। –
'int search_Player (स्ट्रिंग एन)' जैसी विधि के बारे में तर्क करना भी बहुत मुश्किल है। 'प्लेयर getPlayerByName (स्ट्रिंग नाम)' के बारे में क्या (जब तक कि पूर्व विधि हस्ताक्षर असाइनमेंट द्वारा स्पष्ट रूप से नहीं पूछा जाता है)? –