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]