Java集合Collection与List的关系、常见用法

关系树

[java] view plain copy print?
---|Collection: 单列集合  
            ---|List: 有存储顺序, 可重复  
                ---|ArrayList:  数组实现, 查找快, 增删慢  
                            由于是数组实现, 在增和删的时候会牵扯到数组  
                                                增容, 以及拷贝元素. 所以慢。数组是可以直接  
                                                按索引查找, 所以查找时较快  
                ---|LinkedList: 链表实现, 增删快, 查找慢  
                            由于链表实现, 增加时只要让前一个元素记住自  
                                               己就可以, 删除时让前一个元素记住后一个元  
                                               素, 后一个元素记住前一个元素. 这样的增删效  
                                             率较高但查询时需要一个一个的遍历, 所以效率  
                                                较低  
                ---|Vector: 和ArrayList原理相同, 但线程安全, 效率略低  
                             和ArrayList实现方式相同, 但考虑了线程安全问  
                                                题, 所以效率略低  
            ---|Set: 无存储顺序, 不可重复  
                ---|HashSet  
                ---|TreeSet  
                ---|LinkedHashSet  
---| Map: 键值对  
        ---|HashMap  
        ---|TreeMap  
        ---|HashTable  
        ---|LinkedHashMap

常见用法示例

package cn.hanquan.test;

import java.util.ArrayList;
import java.util.Collection;

public class Test
{
	public static void main(String[] args)
	{
		Collection<String> str = new ArrayList<>();

		System.out.println("str的大小:" + str.size());// 输出str的大小
		System.out.println("str是否为空:" + str.isEmpty());// 输出str是否为空

		str.add("一");
		str.add("二");
		str.add("三");
		str.add("四");
		str.add("五");
		System.out.println("str的大小:" + str.size());// 输出str的大小
		System.out.println("str:" + str);// 输出str的内容

		str.remove("高老二");
		System.out.println("str的大小:" + str.size());// 输出str的大小
		System.out.println("str:" + str);// 输出str的内容

//		str.clear();
//		System.out.println(str.size());// 输出str的大小
//		System.out.println(str);// 输出str的内容

		Collection<String> str2 = new ArrayList<>();
		str2.add("1");
		str2.add("2");
		str2.add("3");
		str2.add("4");
		str2.add("五");

		str.addAll(str2);// 把str2中的元素全部添加到str1中
		System.out.println("str:" + str);// 输出str的内容
		System.out.println("str2:" + str2);// 输出str2的内容

		str.retainAll(str2);// 求交集
		System.out.println("求交集后,str:" + str);// 求交集后,输出str的内容

		str.removeAll(str2);// 将str中包含的str2中的元素删除
		System.out.println("删除str中的str2后,str=" + str);// 删除str中与str2相同的元素后,输出str的内容

	}
}

运行结果

str的大小:0
str是否为空:true
str的大小:5
str:[一, 二, 三, 四, 五]
str的大小:5
str:[一, 二, 三, 四, 五]
str:[一, 二, 三, 四, 五, 1, 2, 3, 4, 五]
str2:[1, 2, 3, 4, 五]
求交集后,str:[五, 1, 2, 3, 4, 五]
删除str中的str2后,str=[]

你可能感兴趣的:(Java)