ArrayList‘in massivə çevrilməsi üçün List interfeysinin toArray() metodundan istifadə edilir:
List<String> list = new ArrayList<>();
list.add("element1");
list.add("element2");
Object[] objectArray = list.toArray();
System.out.println(objectArray.length); // 2
String[] stringArray = list.toArray(new String[0]);
System.out.println(stringArray.length); // 2
toArray() metodu geriyə Object tipli massiv qaytarır, ona görə də default olaraq yaranan massivin tipi Object tipidir. Əgər massivin tipini xüsusi olaraq təyin etmək istəyiriksə, o zaman 8-ci sətirdəki kimi həmin tipi toArray() metoduna parametr olaraq göndəririk. new String[0] belə yazdıqda 0-a görə mənimsədilən listin öz ölçüsünü massivə verir. Ancaq 0-ın əvəzinə yazılan rəqəm əgər mənimsədilən listin ölçüsündən kiçik olarsa o zaman listin ölçüsü massivin ölçüsü olur, əgər böyük olarsa qalan elementlərin yeri null ilə doldurulur.
// String[] stringArray1 = list.toArray(); // DOES NOT COMPILE String[] stringArray2 = list.toArray(new String[4]); System.out.println(Arrays.toString(stringArray2)); // [element1,element2,null,null]
Əgər massivin ölçüsü qeyd olunmasa compile xətası verəcək:
String[] stringArray = list.toArray(new String[]); // compile error
Massivi listə çevirmək üçün Arrays class`ının asList() metodundan istifadə edilir. Orijinal massiv ilə bu massiv əsasında yaradılmış list bir-biri ilə əlaqəli olur. Yəni bunlardan birinin elementlərinin dəyişilməsi hər ikisinə təsir göstərir, çünki eyni yaddaş sahəsinə müraciət edirlər (point to the same data store). Bu qayda ilə yaradılmış list həm də fixed-size list hesab olunur, ölçüsünün dəyişdirilməsinə icazə verilmir.
String[] array = {"element1", "element2"}; // [element1, element2]
List<String> list = Arrays.asList(array); // returns fixed size list
System.out.println(list.size()); // 2
list.set(1, "test"); // [element1,test]
array[0] = "new"; // [new,test]
for(String b: array)
System.out.print(b+" "); // new test
list2.remove(1); // throws UnsuppertOperationException
ArrayList<String> list3 = Arrays.asList(array); //doesn't compile
asList() metodu parametr olaraq varargs qəbul edir. Bir sətirdə list yaradıb elementlərini mənimsətmək mümkündür:
List<String> list4 = Arrays.asList("one", "two");
List<Integer> list5 = Arrays.asList(1, 2);
List<Double> list6 = Arrays.asList(1., 2.);
List<Integer> list = Arrays.asList(10, 4, -1, 5);
Collections.sort(list);
Integer[] arr = list.toArray(new Integer[4]);
System.out.println(arr[0]); // -1
[topics lang=az]
