`
pengwei841221
  • 浏览: 71086 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Java - Collection

阅读更多

Q:ArrayList和Vector有什么区别?HashMap和HashTable有什么区别?
A:Vector和HashTable是线程同步的(synchronized)。性能上,ArrayList和HashMap分别比Vector和Hashtable要好。

 

Q:大致讲解java集合的体系结构
A:List、Set、Map是这个集合体系中最主要的三个接口。
其中List和Set继承自Collection接口。
Set不允许元素重复。HashSet和TreeSet是两个主要的实现类。
List有序且允许元素重复。ArrayList、LinkedList和Vector是三个主要的实现类。
Map也属于集合系统,但和Collection接口不同。Map是key对value的映射集合,其中key列就是一个集合。key不能重复,但是value可以重复。HashMap、TreeMap和Hashtable是三个主要的实现类。
SortedSet和SortedMap接口对元素按指定规则排序,SortedMap是对key列进行排序。

 

Comparable和Comparator区别
A:调用java.util.Collections.sort(List list)方法来进行排序的时候,List内的Object都必须实现了Comparable接口。
java.util.Collections.sort(List list,Comparator c),可以临时声明一个Comparator 来实现排序。

Collections.sort(imageList, new Comparator() {
            public int compare(Object a, Object b) {
                int orderA = Integer.parseInt( ( (Image) a).getSequence());
                int orderB = Integer.parseInt( ( (Image) b).getSequence());
                return orderA - orderB;
           }
        });

如果需要改变排列顺序,改成return orderb - orderA 即可。

 

集合接口: 6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。
抽象类: 5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。
实现类: 8个实现类(实线表示),对接口的具体实现。

 

· Collection 接口是一组允许重复的对象。
· Set 接口继承 Collection,但不允许重复,使用自己内部的一个排列机制。
· List 接口继承 Collection,允许重复,
以元素安插的次序来放置元素 ,不会重新排列。
· Map接口是一组成对的键-值对象,即所持有的是key-value pairs。Map中不能有重复的key。拥有自己的内部排列机制。
· 容器中的元素类型都为Object。从容器取得元素时,必须把它转换成原来的类型。

 

 

(1) 单元素添加、删除操作:

//将对象添加给集合
boolean add(Object o)
//如果集合中有与o相匹配的对象,则删除对象o
boolean remove(Object o): 

(2) 查询操作:

//返回当前集合中元素的数量
int size()
//判断集合中是否有任何元素
boolean isEmpty()
//查找集合中是否含有对象o
boolean contains(Object o)
//返回一个迭代器,用来访问集合中的各个元素
Iterator iterator()

(3) 组操作 :作用于元素组或整个集合

//查找集合中是否含有集合c 中所有元素
boolean containsAll(Collection c)
//将集合c 中所有元素添加给该集合
boolean addAll(Collection c) 
//删除集合中所有元素
void clear()
//从集合中删除集合c 中的所有元素
void removeAll(Collection c)
//从集合中删除集合c 中不包含的元素
void retainAll(Collection c) 

(4) Collection转换为Object数组 :

//返回一个内含集合所有元素的array
Object[] toArray()
//返回一个内含集合所有元素的array。
//运行期返回的array和参数a的型别相同,需要转换为正确型别。
Object[] toArray(Object[] a) 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics