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[]...
Java数据类型教程 – Java数组复制 以下代码显示了如何使用for loop复制数组。 import java.util.Arrays; public class Main { public static void main(String[] args) { int[] data = { 1, 2, 3, 4, 5 }; // Expand the data array to 7 elements int[] eData = expandArray(data, 7); // Truncate the data array to 3 elements int[] tData = expandArray(data, 3); System.out.println("Original Array: " + Arrays.toString(data)); System.out.println("Expanded Array: " + Arrays.toString(eData)); System.out.println("Truncated Array: " + Arrays.toString(tData)); } // Uses a for-loop to copy an array public static int[] expandArray(int[] oldArray, int newlength) { int originallength = oldArray.length; int[] newArray = new int[newlength]; int elementsToCopy = 0; if (originallength > newlength) { elementsToCopy = newlength; } else { elementsToCopy = originallength; } for (int i = 0; i <...
Java数据类型教程 – Java数组元素 我们可以使用括在括号中的元素索引来引用数组的每个单独元素。 第一个元素的索引为0,第二个元素1,第三个元素2等。 这称为基于零的索引。数组的最后一个元素的索引是数组的长度减1。 如果我们有一个长度为5的数组,数组元素的索引将是0,1,2,3和4。 引用数组的非现有元素是一个运行时错误。 例如,在代码中使用myID [5]将抛出异常,因为myID的长度为5,而myID [5]引用的是第六个元素,它不存在。 我们可以为数组的元素赋值如下: myID[0] = 10; // Assign 10 to the first element of myID myID[1] = 20; // Assign 20 to the second element of myID myID[2] = 30; // Assign 30 to the third element of myID myID[3] = 40; // Assign 40 to the fourth element of myID myID[4] = 50; // Assign 50 to the fifth element of myID 以下语句将myID数组的第三个元素的值赋给int变量temp: int temp = myID[2]; // Assigns 30 to temp 数组长度 数组对象有一个名为length的公共最终实例变量,它包含数组中元素的数量。 int[] myID = new int[5]; // Create an array of length 5 int len = myID.length; // 5 will be assigned to len length 是数组对象的属性。直到我们创建数组对象,我们不能使用它的length属性。 通常,使用循环访问数组的元素。 for (int i = 0 ; i < myID.length; i++)...
Java数据类型教程 – Java StringBuilder/StringBuffer StringBuilder和StringBuffer是String类的伴随类。 它们表示一个可变的字符序列。 StringBuffer是线程安全的,StringBuilder不是线程安全的。 两个类都有相同的方法,除了StringBuffer中的所有方法都是同步的。 StringBuilder对象是可修改的字符串。 StringBuilder类包含四个构造函数: StringBuilder() StringBuilder(CharSequence seq) StringBuilder(int capacity) StringBuilder(String str) no-args构造函数创建一个默认容量为16的空StringBuilder。 第二个构造函数使用CharSequence对象作为参数。 它创建一个StringBuilder对象,其内容与指定的CharSequence相同。 第三个构造函数使用int作为参数;它创建一个空的StringBuilder对象,其初始容量与指定的参数相同。 以下是创建StringBuilder对象的一些示例: StringBuilder sb1 = new StringBuilder(); StringBuilder sb2 = new StringBuilder("Here is the content"); StringBuilder sb3 = new StringBuilder(200); append()方法将文本添加到StringBuilder的结尾。它需要许多类型的参数。 insert()和delete()修改其内容。 长度和容量 StringBuilder类有两个属性:length和capacity。 它的长度是指其内容的长度,而其容量是指它可以容纳而不分配新的内存的最大字符数。 length()和capacity()方法分别返回其长度和容量。例如, public class Main { public static void main(String[] args) { StringBuilder sb = new StringBuilder(200); // Capacity:200, length:0 sb.append("Hello"); // Capacity:200, length:5 int len = sb.length(); // len is assigned 5 int capacity = sb.capacity(); // capacity is assigned 200 } } 转换为字符串 我们可以通过使用其toString()方法将StringBuilder的内容作为String。 public class Main { public static void main(String[] args) { // Create a String object String s1 = new String("Hello"); // Create a StringBuilder from of the String object s1...
Java数据类型教程 – Java字符串创建/长度 创建字符串对象 String类包含许多可用于创建String对象的构造函数。 默认构造函数创建一个以空字符串作为其内容的String对象。 例如,以下语句创建一个空的String对象,并将其引用分配给emptyStr变量: String emptyStr = new String(); String类包含一个构造函数,它接受另一个String对象作为参数。 String str1 = new String(); String str2 = new String(str1); // Passing a String as an argument 现在str1代表与str2相同的字符序列。在这一点上,str1和str2都代表一个空字符串。我们也可以传递一个字符串字面量到这个构造函数。 String str3 = new String(""); String str4 = new String("Have fun!"); 在执行这两个语句之后,str3将引用一个String对象,它有一个空字符串作为其内容,而str4将引用一个String对象,它有“Have fun!作为其内容。 字符串的长度 String类包含一个length()方法,该方法返回String对象中的字符数。 方法length()的返回类型是int。空字符串的长度为零。 public class Main { public static void main(String[] args) { String str1 = new String(); String str2 = new String("Hello"); // Get the length of str1 and str2 int len1 = str1.length(); int len2 = str2.length(); // Display the length of str1 and str2 System.out.println("Length of \"" + str1 + "\" = " + len1); System.out.println("Length of \"" + str2 + "\" = " + len2); } } 上面的代码生成以下结果。