13 Nisan 2018 Cuma

ArrayList Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.util.ArrayList;
Sınıf List arayüzünü gerçekleştirir.
import java.util.List;
Bu sınıf LinkedList'e göre daha çok kullanılıyor.

constructor - default
Açıklaması şöyle.
Anyone who has programmed with Java before JDK 7_u40 might remember when ArrayList eagerly initialized an empty array of size 10.
Şöyle yaparız.
ArrayList<Foo> list = new ArrayList<Foo>();
constructor - int
Açıklaması şöyle.
Constructs an empty list with the specified initial capacity.
Şöyle yaparız.
List<String> list = new ArrayList<>(10);
constructor - copy
Şöyle yaparız.
ArrayList<Foo> list2 = new ArrayList<Foo>(list);
add metodu
Metodun içi şöyle.
**
 * Appends the specified element to the end of this list.
 *
 * @param e element to be appended to this list
 * @return <tt>true</tt> (as specified by {@link Collection#add})
 */
public boolean add(E e) {
    ensureCapacityInternal(size + 1);  // Increments modCount!!
    elementData[size++] = e;
    return true;
}
Şöyle yaparız.
Foo f = ...;
list.add (f);
clear metodu
Metodun imzası şöyledir.
public void clear();
get metodu
Belirtilen konumdaki nesneyi döner.
int index = ...;
Foo f = list.get (index);
isEmpty metodu
Şöyle yaparız.
if (list.isEmpty ()){...}
iterator metodu
Şöyle yaparız.
Iterator<Foo> it = list.iterator();
listIterator metodu
ListIterator nesnesi döner. Örnek ver

remove metodu
Şöyle yaparız. p nesnesinin equals metodunu gerçekleştirmiş olması gerekir. Başarılı ise true döner.
Foo f = ...;
return list.remove (f);
removeAll metodu
Metodun için şöyledir.
public boolean removeAll(Collection<?> c) {
  boolean modified = false;
  Iterator<?> e = iterator();
  while (e.hasNext()) {
    if (c.contains(e.next())) {
      e.remove();
      modified = true;
    }
  }
  return modified;
}
p nesnesinin equals metodunu gerçekleştirmiş olması gerekir. List1'in içinden List2'yi siler. List1 değişmiş ise true döner.  Eğer nesnemizin equals() metodu yoksa removeIf() metodunu kullanmak daha iyi olabilir.

Örnek
Şöyle yaparız.
List<Foo> list1 = new ArrayList<Foo>(...);
List<Foo> list2 = new ArrayList<Foo>(...);

list1.removeAll (list2);
removeIf metodu
Collection.removeIf yazısına taşıdım.

retainAll metodu
f nesnesinin equals metodunu gerçekleştirmiş olması gerekir. İki listenin kesişimini bulur.

Örnek
Şöyle yaparız.
List<String> coll1 = new ArrayList<>(Arrays.asList("A"));
List<String> coll2 = new ArrayList<>(Arrays.asList("B","C"));
coll1.retainAll(coll2);
System.out.println(coll1);
Çıktı olarak şunu alırız
[]
size metodu
Şöyle yaparız.
if (list.size () <= 0) {...}
toArray metodu
Örnek
Şöyle yaparız.
List<String> list = new ArrayList<>();
list.add("Hi ");
list.add("Hello ");
list.add("How ");
list.add("are ");
list.add("you? ");
String[] arr = list.toArray(new String[list.size()]);
Örnek
Şöyle yaparız
ArrayList<Integer> list = new ArrayList<>();
list.add(5);
list.add(10);
list.add(15);
		
Integer[] intArr = list.toArray(Integer[]::new); //Java 11
System.out.print(Arrays.toString(intArr));
Örnek
Şöyle yaparız
ArrayList<String[]> values = new ArrayList<>();
String[] data1 = new String[]{"asd", "asdds", "ds"};
String[] data2 = new String[]{"dss", "21ss", "pp"};

String[][] arr = values.toArray(new String[0][]);
String[][] arr = values.toArray(String[][]::new); // Java 11

Hiç yorum yok:

Yorum Gönder