Java 可变长度数组
2018-01-23 18:27 更新
Java数据类型教程 - Java可变长度数组
Java数组不能增长。为了创建一个可扩展的数组,我们可以使用ArrayList或Vector。
ArrayList和Vector类的工作方式相同,只是Vector类中的方法是同步的,而ArrayList中的方法不同步。
ArrayList类仅适用于对象,不适用于原始数据类型。
ArrayList类是一个通用类,它将其元素的类型作为type参数。
要使用原始值,请声明一个包装类的ArrayList。例如,使用ArrayList <Integer>来处理int元素。
例子
以下代码片段说明了ArrayList类的使用:
import java.util.ArrayList; public class Main { public static void main(String[] args) { ArrayList<Integer> ids = new ArrayList<>(); int total = ids.size(); // total will be zero System.out.println("ArrayList size is " + total); System.out.println("ArrayList elements are " + ids); ids.add(new Integer(10)); // Adding an Integer object. ids.add(20); // Autoboxing ids.add(30); // Autoboxing total = ids.size(); // total will be 3 System.out.println("ArrayList size is " + total); System.out.println("ArrayList elements are " + ids); ids.clear(); total = ids.size(); // total will be 0 System.out.println("ArrayList size is " + total); System.out.println("ArrayList elements are " + ids); } }
上面的代码生成以下结果。
例2
像数组一样,ArrayList使用基于零的索引。 ArrayList的第一个元素的索引为零。
以下代码说明了如何使用for循环遍历ArrayList的元素。
import java.util.ArrayList; public class Main { public static void main(String[] args) { ArrayList<String> namelist = new ArrayList<String>(); // Add some names namelist.add("A"); namelist.add("B"); namelist.add("C"); // Get the count of names in the list int count = namelist.size(); for (int i = 0; i < count; i++) { String name = namelist.get(i); System.out.println(name); } namelist.remove("A"); count = namelist.size(); for (int i = 0; i < count; i++) { String name = namelist.get(i); System.out.println(name); } } }
上面的代码生成以下结果。
将ArrayList/Vector转换为数组
ArrayList类有一个名为toArray()的重载方法:
Object[] toArray( ) <T> T[] toArray(T[ ] a)
第一个方法返回ArrayList的元素作为Object的数组。第二种方法将任何类型的数组作为参数。
以下代码显示了如何将ArrayList转换为数组。
import java.util.ArrayList; import java.util.Arrays; public class Main { public static void main(String[] args) { ArrayList<String> al = new ArrayList<String>(); al.add("Java"); al.add("SQL"); al.add("Data"); System.out.println("ArrayList:" + al); String[] s1 = new String[al.size()]; String[] s2 = al.toArray(s1); System.out.println("s1 == s2:" + (s1 == s2)); System.out.println("s1:" + Arrays.toString(s1)); System.out.println("s2:" + Arrays.toString(s2)); s1 = new String[1]; s1[0] = "hello"; // Store hello in first element s2 = al.toArray(s1); System.out.println("s1 == s2:" + (s1 == s2)); System.out.println("s1:" + Arrays.toString(s1)); System.out.println("s2:" + Arrays.toString(s2)); } }
上面的代码生成以下结果。
以上内容是否对您有帮助:
更多建议: