欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java 学习总结(二十八)

程序员文章站 2022-06-09 21:19:14
...

Java 基础总结(二十八)

Java集合工具类:Collections

同步控制示例代码

package com.zst.collections;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class SynchronizedDemo {
	public static void main(String[] args) {
		//
		List<String> list = Collections.synchronizedList(new ArrayList<String>());
		
		Set<String> set = Collections.synchronizedSet(new HashSet<String>());
		
		Map<Integer, String> map = Collections.synchronizedMap(new HashMap<Integer, String>());
	}
}

Java集合总结
1、 List,Set,Map是集合体系中最主要的三个接口。其中list和set是继承自collection接口,Map虽然也属于集合系统但是却和collection接口不同。
2、list是有序且允许元素重复,允许元素为null,ArrayList、LinkedList和Vector是三个主要的实现类
(1)、Vector、ArrayList都是以类似数组的形式存储在内存中,LinkedList则以链表的形式进行存储。
(2)、Vector线程安全的(同步),ArrayList、LinkedList线程不安全的(不同步)。
(3)、ArrayList、Vector适合查找,不适合指定位置的插入、删除操作;
LinkedList适合指定位置插入、删除操作,不适合查找。
(4)、ArrayList在元素填满容器时会自动扩充容器大小的50%,而Vector则是100%,因此ArrayList更节省空间
3、set是无序,不允许元素重复;HashSet和TreeSet是两个实现类
(1)HashSet 基于HashMap实现,HashSet中的数据是无序的,可以放入null,但只能放入一个null,两者中的值都不能重复。
要求放入的对象必须实现HashCode()方法,放入的对象,是以hashcode码作为标识的。
(2)TreeSet 是二差树实现的,Treeset中的数据是自动排好序的,不允许放入null值
4、Comparator 和 Comparable 的区别 :
Comparator 定义在 类的外部, 此时我们的类的结构不需要有任何变化,从小到大:o1­o2 从大到小:o2­o1 Comparable 定义在 类的内部,耦合性较强 从小到大 :this­o 从大到小:o­this