17 Haziran 2020 Çarşamba

Array Sınıfı

Giriş
Şu satırı dahil ederiz. Java'da Array sınıfı ne tam bir Object ne de primitive tiptir. Tam bir nesne değildir çünkü equals(), hashCode() gibi metodları override etmezler.
import java.lang.reflect.Array;
Tanımlama
Array aşağıdaki iki şekilde de tanımlanabilir.
String arr[] = new String[3];
String[] arr = new String[3]; //Bunu tercih etmek lazım
İlklendirme
Tanımlama + İlklendirme için şöyle yaparız.
int[] myIntArray = {1, 2, 3};
Daha sonra ilklendirme için şöyle yaparız.
int[] myIntArray = {1, 2, 3};
// some code
if (someCondition) {
  myIntArray= new int[] {4, 5, 6};
}
Array Of Primitive
Açıklaması şöyle.
an int array cannot be casted to an Object array implicitly.
Elimzde şöyle bir kod olsun.
static void print(Object... obj) {
  System.out.println("Object…: " + obj[0]);
}

public static void main(String[] args) {
 int[] array = new int[] {9, 1, 1};
 print(array);
 System.out.println(array instanceof Object);
}
Çıktı olarak şunu alırız.
Object…: [I@140e19d
true
get metodu
Şöyle yaparız.
Object arr = ...;

int index = 0;
Object element = java.lang.reflect.Array.get(arr,index);
getLength metodu
Şöyle yaparız.
Object arr = ...;
int size = Array.getLength(arr);
newInstance metodu
Metodun imzası şöyle
public static Object newInstance(Class<?> componentType,
                 int length)
                          throws NegativeArraySizeException
Object dizisi için şöyle yaparız.
Integer[] a = (Integer[])Array.newInstance(Integer.class, 5);
Primitive için şöyle yaparız.
int[] b = (int[])Array.newInstance(Integer.TYPE, 5);
Array of Array için şöyle yaparız. Yukarıdaki b değişkenini kullanıyoruz.
int[][] c = (int[][])Array.newInstance(b.getClass(), 5);
set metodu
Şöyle yaparız.
Object arr = ...;
int iIndex = 0;
Object element = ...;
java.lang.reflect.Array.set(arr,
                            iIndex,
                            element,
                            );



Hiç yorum yok:

Yorum Gönder