SORU
25 Mart 2009, ÇARŞAMBA


Nasıl bir PriorityQueue kullanırım?Java:

PriorityQueue bir bakıma devam etmek istiyorum ne tür gidilir?

Eklendi: var offer add yöntemler arasında bir fark var mı?

CEVAP
25 Mart 2009, ÇARŞAMBA


Sıralama düzenini uygun şekilde karşılaştıran bir karşılaştırma Comparator<? super E> comparator ve biletini alır oluşturucu aşırı kullanımı. Eğer sıralamak istiyorum nasıl bir örnek verirseniz, eğer eminsen bazı örnek kodu benzer uygulamaya sunabiliriz. (Oldukça basit aslında.)

Her yerde olduğu gibi söylenmiştir: offer add sadece farklı arabirim yöntemi uygulamaları. Bende GÖRDÜM kaynağı, add aramalar offer. add offer olmasına rağmenpotansiyel olarakdavranış offer değer boyutu sınırlamaları nedeniyle eklenebilir mi olduğunu belirtmek için yeteneği nedeniyle genel olarak farklı, bu fark, sınırsız olan PriorityQueue ilgisizdir.

İşte bir öncelik sırası dize uzunluğu göre sıralamak için bir örnek:

// Test.java
import java.util.Comparator;
import java.util.PriorityQueue;

public class Test
{
    public static void main(String[] args)
    {
        Comparator<String> comparator = new StringLengthComparator();
        PriorityQueue<String> queue = 
            new PriorityQueue<String>(10, comparator);
        queue.add("short");
        queue.add("very long indeed");
        queue.add("medium");
        while (queue.size() != 0)
        {
            System.out.println(queue.remove());
        }
    }
}

// StringLengthComparator.java
import java.util.Comparator;

public class StringLengthComparator implements Comparator<String>
{
    @Override
    public int compare(String x, String y)
    {
        // Assume neither string is null. Real code should
        // probably be more robust
        // You could also just return x.length() - y.length(),
        // which would be more efficient.
        if (x.length() < y.length())
        {
            return -1;
        }
        if (x.length() > y.length())
        {
            return 1;
        }
        return 0;
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Distractify

    Distractify

    1 Aralık 2011
  • Mark Halberstadt

    Mark Halbers

    19 ŞUBAT 2010
  • undrmyumbrellaa

    undrmyumbrel

    25 Temmuz 2012