java - 数组和集合的区别联系

目录

 

数组和集合的区别

1、数组的容量是固定的。集合不是

1.1 数组有关:

1.2 数组的扩展

2、集合可以不指定类型。数组不能

3、待续


数组和集合的区别

1、数组的容量是固定的。集合不是

1.1 数组有关:

数组创建必须初始化,不然无法使用。

数组没有add方法。

创建数组的几种方式:

输出测试:

public class ArrayTestClass {
	static String[] 
			fs1 = new String[16],
			fs2 = new String[] { "a", "b" },
			fs3 = { "c", "d" };
	public static void main(String[] args) {
		fs1[1]="123";
		System.err.println(fs1[1]);
		System.err.println(fs2[1]);
		System.err.println(fs3[1]);
	}
}

输出:

123
b
d

1.2 数组的扩展(不确定数组长度时可用)

初始化数组 - 给数组设置值 - 越界 - 建立新数组 - 拷贝旧数组到新数组 - 指向新数组

package test;

public class ArrayTestClass {
	public static void main(String[] args) {
		// new 一个16位的数组
		String[] fs1 = new String[16];
		// 循环输出32个数字字符
		for (int i = 0; i < 32; i++) {
			// 检测越界后的数组
			fs1 = addArr(fs1, i);
			fs1[i] = "" + i;
			System.err.println(fs1[i]);
		}
	}

	/**
	 * 检测是否越界
	 */
	public static String[] addArr(String[] cs, int i) {
		// 下标越界
		if (i >= cs.length) {
			// new 一个新数组,长度为原数组长度的3/2 第一次处理后的长度为24,需要输出32个,所以会进入两次
			String[] newArr = new String[cs.length + cs.length / 2];
			// 拷贝原数组到新数组。参数为:(原数组, 原数组的开始位置, 目标数组, 目标数组的开始位置, 拷贝个数)
			System.arraycopy(cs, 0, newArr, 0, cs.length);
			// 把原数组替换为新数组
			cs = newArr;
		}
		return cs;
	}

}

1.3、数组的排序和去重复

待续

2、集合可以不指定类型。数组不能

2.1、集合相关

待续

3、ArrayList基于数组创建

4、待续

猜你喜欢

转载自blog.csdn.net/sinat_32238399/article/details/82760233