Lista och matriser är två sätt att lagra data i Java som du kommer att använda ganska ofta. I projekt där du behöver lagra data utan någon form av filhantering låter list och arrayer dig lagra data under hela programmets körning. Vi kommer att använda Class ArrayList som implementerar List Interface i Java omväxlande genom hela den här handledningen.
Skillnaden mellan List och Array
Lista |
Array |
Storleken på en lista kan ändras |
Storleken på en array kan inte ändras |
Du kan inte lagra primitiva typer i List |
Du kan lagra primitiva typer i Array |
Du kan använda Generics med List |
Du kan inte använda Generics med Array |
Förbrukar mer minne |
Förbrukar mindre minne |
Konvertera lista till array med biblioteksfunktion
List har en
toArray() -metod som direkt omvandlar innehållet i valfri lista till en array samtidigt som textens placering i Arrayen behålls som den var i den ursprungliga listan. Här är algoritmen/stegen för att konvertera en lista till array i java med denna inbyggda biblioteksfunktion.
- Initiera en ArrayList.
- Lägg till element i listan med metoden list.add(data_type) .
- Skapa en Array med samma storlek som listan.
- Konvertera listan till en array genom att använda variabelnamnet på arrayen som skapades i steg 3 som ett argument.
- Skriv ut innehållet i Arrayen.
Koden som implementerar dessa steg ges nedan.
import java.util.ArrayList;
public class convertListToArray {
public static void main(String[] args) {
//Converting List to Array With Library Function
//Declaration of Array List
ArrayList<String> sampleList = new ArrayList<String>();
//Adding Elements to Array List
sampleList.add("California");
sampleList.add("Texas");
sampleList.add("Illinois");
sampleList.add("Massachusetts");
sampleList.add("Florida");
sampleList.add("Virginia");
sampleList.add("Colorado");
//Printing the Array List
System.out.println("Elements of List: " + sampleList);
//Declaring Array with Equal Size to the List
String[]arr = new String [sampleList.size()];
//Converting List to Array
sampleList.toArray(arr);
//Printing the Array
System.out.print("Elements of Array: ");
for (int i = 0 ; i < arr.length ; i++){
System.out.print(arr[i] + " ");
}
}
}
Konvertera lista till array utan biblioteksfunktion
Ibland kan det finnas ett krav att konvertera listan till en array utan att använda inbyggda funktioner. Problemet kan använda vissa begränsningar när det gäller biblioteksfunktioner. Detta krav är vanligt för programmeringsstudenter som uppmuntras att arbeta utan biblioteksfunktioner för att hjälpa dem att lära sig de inre funktionerna i dessa funktioner innan de implementeras. I sådana fall kan du använda följande steg för att konvertera en lista till en array i java utan någon biblioteksfunktion.
- Initiera en ArrayList.
- Lägg till element i listan med metoden list.add(data_type) .
- Skapa en Array med samma storlek som listan.
- Skapa en for-loop som itererar genom varje element i ArrayList och skickar den till Array[index] genom funktionen list.get(index) .
- Skriv ut innehållet i arrayen för att visa att du faktiskt konverterar listan till en array.
Koden för att implementera dessa steg ges nedan.
import java.util.ArrayList;
public class converListToArray2 {
public static void main(String[] args) {
//Converting List to Array Without Library Functions
//Declaration of Array List
ArrayList<String> sampleList = new ArrayList<String>();
//Adding Elements to Array List
sampleList.add("California");
sampleList.add("Texas");
sampleList.add("Illinois");
sampleList.add("Massachusetts");
sampleList.add("Florida");
sampleList.add("Virginia");
sampleList.add("Colorado");
//Printing the Array List
System.out.println("Elements of List: " + sampleList);
//Declaring Array with Equal Size to the List
String[]arr = new String [sampleList.size()];
//Converting to Array
for (int i = 0 ; i < arr.length ; i++){
arr[i] = sampleList.get(i);
}
//Printing the Array
System.out.print("Elements of Array: ");
for (int i = 0 ; i < arr.length ; i++){
System.out.print(arr[i] + " ");
}
}
}
På samma sätt, om du också undrar hur man konverterar en array till en lista, kan du göra det genom att använda den inbyggda
Array.asList()- metoden eller iterera genom arrayen och lagra värden vid varje index i listan.
GO TO FULL VERSION