Ben bir Java listesinde, set veya girdileri belirli bir zaman diliminde sonra sona sahiptir benzer bir şey arıyordum ettik ama bulmak için henüz. Guava'nın, kullanımım için neredeyse mükemmel olan CacheBuilder
'u buldum, ancak bir Liste veya Set yerine bir harita. Böyle bir şey zaten var mı, yoksa onu kullanmak istersem, bir tane yapmalı mıyım? Java HashSet uygulaması dahili bir HashMap kullandığındanJava zaman aşımına uğradı Liste/Ayar?
cevap
, kopyalama/o guavaları CacheBuilder kullanması için kodunu değiştirmek gerçekten kolay olmalıdır. Başka bir deyişle
public class HashSet<E>
extends AbstractSet<E>
implements Set<E>, Cloneable, java.io.Serializable
{
static final long serialVersionUID = -5024744406713321676L;
private transient HashMap<E,Object> map;
...
, sadece planlarınız
SetWithExpiration
anahtarına anahtarından bir
CacheBuilder
harita olarak. Bu, bir
HashMap
temel alınarak Java
HashSet
uygulama kaybından daha fazla verimlilik kaybetmez.
Çok kolay değil. Yeniden icat 'HashSet' sınıfını kötü bir fikir olduğunu ve sadece – Bohemian
evet "HashSet yerine CacheBuilder kullanmak yapmak" olamaz, temiz kod çözümü AbstractSet uzatmak ve içten Bağımlılığı enjeksiyon yoluyla iletilen bir harita kullanmak olacaktır . –
Eğer tuşları olarak harita ve değerler olarak bazı kukla nesnede nesnelerinizi koyabilirsiniz, bir zaman listesini doldu almak için CacheBuilder
kullanın.
Veya nesnelerinizi anahtar ve değer olarak kullanın. Her bir kukla için yeni bir nesne yaratmamaya dikkat edin, çünkü bu atık olur. –
- 1. com.paypal.core.rest.PayPalRESTException: Zaman aşımına uğradı
- 2. Daima zaman aşımına uğradı
- 3. Java BoneCP MySQL bağlantısı zaman aşımına uğradı
- 4. fix java.net.SocketTimeoutException: Zaman aşımına uğradı
- 5. Python - TKinter "zaman aşımına uğradı"
- 6. FtpWebResponse, işlem zaman aşımına uğradı
- 7. Bekleme işlemi zaman aşımına uğradı
- 8. System.Net.WebException: İşlem zaman aşımına uğradı
- 9. Websocket Bağlantı El Sıkışma Zaman aşımına uğradı
- 10. Kod = -1001 "İstek zaman aşımına uğradı."
- 11. İstek Zaman aşımına uğradı Kod = -1001_kCFStreamErrorCodeKey = -2102
- 12. Android Studio - Hata: Bağlantı zaman aşımına uğradı
- 13. URLError: urlopen hatası zaman aşımına uğradı
- 14. ASP.NET Web API Yetkilendirme zaman aşımına uğradı
- 15. SQLAlchemy/mysql neden zaman aşımına uğradı?
- 16. Bekleme işlemi zaman aşımına uğradı. ASP
- 17. Kablosuz yönlendiriciye ping işlemi yapıldığında zaman aşımı zaman aşımına uğradı
- 18. JDBC bir zaman aşımıyla zaman aşımına uğradı sorgusu
- 19. Bazen java.net.SocketTimeoutException: Okuma zaman aşımına uğradı. Bazen değil
- 20. OSX Sunucusu 3.2.1 tümleştirme zamanı kaynak oluştururken zaman aşımına uğradı
- 21. T-SQL Azure'da Zaman Aşımına Uğradı SMO ile Çalışırken
- 22. MongoDB toplaması sırasında "Server x zaman aşımına uğradı"
- 23. Cruise Control & Git: "Kaynak kontrol işlemi zaman aşımına uğradı." hata
- 24. Travis-CI Gradle ile Android testler zaman aşımına uğradı
- 25. Git işlemi neden "İşlem zaman aşımına uğradı" ile başarısız oluyor?
- 26. VB.net Bağlantısı ile VisM "Sunucu Zaman Aşımına Uğradı"
- 27. OkHttp3 isteği zaman aşımına uğradı mı kontrol edilir?
- 28. systemd Servis kavanoz için dosya birkaç minues sonra hatayı "İşlem zaman aşımına uğradı" veya
- 29. WCF System.TimeoutException: Soket aktarımı 00:00:00 sonra zaman aşımına uğradı
- 30. Alamofire isteği, Socket.io bağlıysa "İstek zaman aşımına uğradı" ile başarısız olur.
Kullanım durumunuz nedir? – Bohemian
Ben de kullanım durumu görmek zor bir zaman geçiriyorum. Genellikle, önbelleğe almak istediğinizde, önbelleğe alınan şeyleri geri almak için bir anahtara ihtiyacınız vardır, bu nedenle her önbellek uygulaması, Harita arabirimiyle (veya benzer bir şeyle) neden çalışır? – Matt
Hala Kullanıcıların konuşmak chatroomda bir anti-repeat mesaj eklentisi yapıyorum Set –