普通数组
package com.cnblogs.www.demo9;
public class ArrayTest {
public static void main(String[] args) {
int[] arr= {1,2,3,4,5}; //声明普通数组,包含的元素,数量固定且类型相同的值
System.out.println("使用for循环对数组遍历:");
for(int i = 0; i < 5; i++) {
System.out.println(arr[i]+" ");
}
System.out.println("=====================分隔线=====================");
System.out.print("使用唯一的一个属性获得数组的长度: ");
System.out.println(arr.length);
System.out.print("使用索引对数组内的元素进行查询,查询索引为1的元素:");
System.out.println(arr[1]);
System.out.print("使用索引对数组内的元素进行修改,修改索引为1的元素并查询:");
arr[1] = 7;
System.out.println(arr[1]);
}
}
动态数组
package com.cnblogs.www.demo9;
import java.util.ArrayList;
public class ArrayListTest {
public static void main(String[] args) {
ArrayList arr = new ArrayList(); //声明ArrayList数组,包含的元素不固定,类型相同
arr.add("读书"); //向数组中添加元素
arr.add("骑行");
arr.add("战旗");
arr.add("动漫");
System.out.print("使用size()方法获得数组长度:");
System.out.println(arr.size());
System.out.println("使用for循环对数组进行遍历,get()方法获取数组中的值,参数是i:");
for(int i = 0; i < arr.size(); i++) {
System.out.println(arr.get(i));
}
System.out.println("=============================分隔线=================================");
System.out.println("删除索引为1的元素:");
arr.remove(1);
System.out.println("对数组进行遍历,可以看到索引为1的元素已经删除:");
for(int i = 0; i < arr.size(); i++) {
System.out.println(arr.get(i));
}
System.out.println("==============================分隔线================================");
System.out.println("使用索引进行查询");
System.out.println(arr.get(0));
System.out.println(arr.get(1)); //删除一个元素后,下一们元素会占领这个被删除元素的索引
System.out.println(arr.get(2));
//System.out.println(arr.get(3)); //查询索引为3的元素时,显示数组下标越界异常,是因为没有。
System.out.println("对数组进行遍历,可以看到此时数组内只有3个元素了,而索引从0开始:");
for(int i = 0; i < arr.size(); i++) {
System.out.println(arr.get(i));
}
System.out.println("================================分隔线==============================");
arr.add("美食"); //虽然没有报错,但是有个类型安全的警告提示。提示应该使用泛型。泛型下个练习总结。注:警告提示可以关闭,我为了自学方便不选择关闭。
System.out.println("对数组进行遍历,可以看到在数组的最后添加了一个元素 美食:");
for(int i = 0; i < arr.size(); i++) {
System.out.println(arr.get(i));
}
}
}
泛型
package com.cnblogs.www.demo9;
import java.util.ArrayList;
public class GenericityTest {
public static void main(String[] args) {
ArrayList<Object> arr = new ArrayList<Object>(); //可以存储不同类型的元素
arr.add(1); //jdk1.5版本新功能,自动装箱,将基本数据类型自动封装,在没有类型匹配时。
arr.add("战旗");
arr.add(2);
arr.add("读书");
arr.add(3);
arr.add("动漫");
System.out.print("使用size()获得长度:");
System.out.println(arr.size());
System.out.println("使用for循环遍历,get()方法获得数组内的元素:");
for(int i = 0; i < arr.size(); i++) {
System.out.print(arr.get(i) + " ");
}
System.out.println(" ");
arr.add("美食"); //字符串,此时使用add()方法添加元素时不会出现黄色的警告提示了
arr.add(4); //整数
arr.add(2.5); //浮点数
arr.add(-2.5); //浮点数
arr.add('学'); //字符
arr.add(true); //布尔
arr.add(false); //布尔
System.out.println("使用for循环遍历,可以看到不同类型的元素也能正常添加:");
for(int i = 0; i < arr.size(); i++) {
System.out.print(arr.get(i) +" ");
}
}
}
遍历数组时,有一个问题,那就是使用输出语句时利用了空格来完成元素的间隔。
如果空格换成顿号,就规范多了,可是这样新的问题又出现了,那就是最后一个顿号也会显示。
这里我尝试了下使用if判断语句来解决这个问题
package com.cnblogs.www.demo9;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<Object> arr = new ArrayList<Object>();
arr.add("读书");
arr.add("骑行");
arr.add("战旗");
System.out.println("使用for循环遍历");
for(int i = 0; i < arr.size(); i++) {
System.out.print(arr.get(i));
//==(关系运算符)可以用来比较值,这里的值:i是遍历的次数,arr.size()-1是最后一个索引值。
if(i == arr.size()-1){
System.out.print(" ");
}else{
System.out.print("、");
}
}
}
}