Genellikle, değişkenlerin uygulama sınıfı değil, bazı arabirimlerle bildirilmesi gerektiği önerilmektedir.Değişkenler her zaman Java arayüzünde belirtilmelidir?
List<Integer> list = new ArrayList<>();
Ancak, gerçekten O bir ArrayList
(örn Fisher-Yates üreticimizin) (1) rasgele erişim bağlıydı bir algoritma için bu listeyi kullanıyorum ki: Örneğin. Bu durumda, ArrayList
'un benim için temsil ettiği anahtar soyutlama, onun sadece Doğa niteliğini değil, diziliş niteliğindeki doğasıdır. Diğer bir deyişle, birisi list
'u LinkedList
olarak değiştirmiş ve değiştirmiş olsa bile, kod derlenmiş olsa bile bu sorun yaratabilir. Böyle bir durumda, beyan ben arayüzlerini kullanarak hala çok önemli olduğunu düşünüyorum uygulama tipini ?, ör .:
ArrayList<Integer> list = new ArrayList<>();
List/ArrayList başvurusunu bir genel API aracılığıyla açığa çıkarmazsanız, gerçekten önemli değildir (diğer tüm durumlarda olduğu gibi, modern bir IDE, bir türden diğerine yeniden sıralama yapmak için önemsiz hale getirmelidir). Yani en uygun olanı yapın. –
Beklediğiniz verinin büyüklüğüne bağlı olarak, bir List kabul edebilir ve ardından rastgele erişimi garanti altına almak için fonksiyonunuzun içindeki bir ArrayList'e kopyalayabilirsiniz. –