Çözüldü Eklenti kodlarken aldıgımız ve yapmadıgımız sorunlar.

  • Konuyu Başlatan Konuyu Başlatan Avelis
  • Başlangıç tarihi Başlangıç tarihi
  • Görüntüleme 823
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Avelis

Ruh + Kum = Ruh Kumu
Katılım
24 Ağustos 2019
Mesajlar
1.296
Elmaslar
830
Puan
17.075
Eklenti kodluyoruz ancak bir yeri yapamadık @LifeMCServer Yardımcı olacagını düşünüyorum.

Bir event eklentisi kodluyoruz Blok kıranlardan en çok kıranları alamıyorum.



Bukkit API'sinde bir HashMap'te value leri büyükten küçüğe nasıl sıralayabiliriz ? Veya HashMap'te en büyük büyük value'ye sahip olan indexi nasıl alabiliriz ?
 
Son düzenleme:
En çok blok kıranları almak için öncelikle eğer sunucu kapandığında gitmemesini istiyorsanız bir depolama biçimi seçmelisiniz, configte, sqlite ile, mysql ile, skript ile, vs. depolayabilirsiniz.

İkinci sorun için sort methodunu kullanmanız gerekiyor. Örnek:


Java:
import java.util.*;

public class JavaSortMapTest {
    public static final void main(final String[] args) {
        Map<String, Integer> hashMap = new HashMap<>();

        hashMap.put("Ahmet", 5);
        hashMap.put("Mehmet", 3);

        hashMap.put("Burak", 8);
        hashMap.put("Mustafa", 10);

        hashMap.put("Tayyar", 1);
        hashMap.put("Kemal", 6);

        int i = 0;

        for (final Map.Entry entry : sortMapDescending(hashMap)) {
            i++;

            System.out.println("#" + i + " " + entry.getKey() + ": " + entry.getValue());
        }
    }

    public static final <T, E extends Comparable> List<Map.Entry<T, E>> sortMapDescending(final Map<T, E> map) {
        List<Map.Entry<T, E>> entryList = new ArrayList<>(map.entrySet());
       
        entryList.sort((one, other) -> {
            if (one == null || other == null || one.getValue() == null || other.getValue() == null)
                return 0;
            return other.getValue().compareTo(one.getValue());
        });
       
        return entryList;
    }
}

Çıktı:
1576317618203.png
 
En çok blok kıranları almak için öncelikle eğer sunucu kapandığında gitmemesini istiyorsanız bir depolama biçimi seçmelisiniz, configte, sqlite ile, mysql ile, skript ile, vs. depolayabilirsiniz.

İkinci sorun için sort methodunu kullanmanız gerekiyor. Örnek:


Java:
import java.util.*;

public class JavaSortMapTest {
    public static final void main(final String[] args) {
        Map<String, Integer> hashMap = new HashMap<>();

        hashMap.put("Ahmet", 5);
        hashMap.put("Mehmet", 3);

        hashMap.put("Burak", 8);
        hashMap.put("Mustafa", 10);

        hashMap.put("Tayyar", 1);
        hashMap.put("Kemal", 6);

        int i = 0;

        for (final Map.Entry entry : sortMapDescending(hashMap)) {
            i++;

            System.out.println("#" + i + " " + entry.getKey() + ": " + entry.getValue());
        }
    }

    public static final <T, E extends Comparable> List<Map.Entry<T, E>> sortMapDescending(final Map<T, E> map) {
        List<Map.Entry<T, E>> entryList = new ArrayList<>(map.entrySet());
      
        entryList.sort((one, other) -> {
            if (one == null || other == null || one.getValue() == null || other.getValue() == null)
                return 0;
            return other.getValue().compareTo(one.getValue());
        });
      
        return entryList;
    }
}

Çıktı:
Ekli dosyayı görüntüle 99632
Yardımın için teşekkür ederim. Sorun Çözüldü Kilitlenebilir.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Hala Discord sunucumuza katılmadın mı?

Büyük bir topluluğun parçası ol, etkinliklere katıl ve özel hediyeler kazanma şansı yakala!

Şimdi Katıl
Üst