集合中的Collection方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/guyan1111/article/details/70256616

Collection存在集合中的共性方法,也是集合中的父类,请参考集合关系表,(图片来源于网络)



---|Collection: 单列集合

           ---|List: 有存储顺序, 可重复

              ---|ArrayList:    数组实现, 查找快, 增删慢

                                  由于是数组实现, 在增和删的时候会牵扯到数组增容, 以及拷贝元素. 所以慢。数组是可以直接按索引查找, 所以查找时较快

              ---|LinkedList:   链表实现, 增删快, 查找慢

                                   由于链表实现, 增加时只要让前一个元素记住自己就可以, 删除时让前一个元素记住后一个元素, 后一个元素记住前一个元素. 这样的增效率较高但查询低

              ---|Vector:   和ArrayList原理相同, 但线程安全, 效率略低

                               和ArrayList实现方式相同, 但考虑了线程安全问题, 所以效率略低

           ---|Set: 无存储顺序, 不可重复

              ---|HashSet

              ---|TreeSet

              ---|LinkedHashSet

---| Map: 键值对

       ---|HashMap

       ---|TreeMap

       ---|HashTable

       ---|LinkedHashMap


增加:

       1:add()   将指定对象存储到容器中

                      add 方法的参数类型是Object 便于接收任意对象

       2:addAll() 将指定集合中的元素添加到调用该方法和集合中

删除:

       3:remove() 将指定的对象从集合中删除

       4:removeAll() 将指定集合中的元素删除

修改

       5:clear() 清空集合中的所有元素

判断

       6:isEmpty() 判断集合是否为空

       7:contains() 判断集合何中是否包含指定对象

           

       8:containsAll() 判断集合中是否包含指定集合

                            使用equals()判断两个对象是否相等 

获取:   9:int size()    返回集合容器的大小

转成数组10: toArray()   集合转换数组


public static void main(String[] args) {
		Collection list1  = new ArrayList();
		list1.add("北京海淀");
		list1.add("山东青岛");
		list1.add("浙江杭州");
		list1.add("广东广州");
		System.out.println(list1);
		Collection list2 = new ArrayList();
		list2.add("java");
		list2.add(list1);
		list2.addAll(list1);
		System.out.println(list2);
		System.out.println(list2.size());
		
		Boolean remove1 = list1.remove("北京海淀");
		if(remove1){
			System.out.println("删除成功");
			System.out.println(list1);
			System.out.println(list2);
		}
		
	}


输出结果为:


由此可见。add(list1)是将整个list1集合当做一个对象,addAll(list1),是将list1中的每一个元素当做list2中的一个元素

当删除list1中的一个元素时,list2中的list1对象也会删除一个元素,但是使用addAll()方法添加的元素不会被删除










猜你喜欢

转载自blog.csdn.net/guyan1111/article/details/70256616