Java华丽转身 —— 容器API

      Java容器API位于Java.util包中,Java.util包包含许多类和接口,包括集合框架。集合框架是一个复杂接口和类的层,提供了管理对象组的优化技术。其中Collection类就是属于集合框架中的一个接口。

 

      Collection接口是允许处理一组对象,它位于集合层次结构的顶部。是构造集合框架的基础,它必须被定义的任意类所实现。

    

     



ListSet

     

List 

      List是有序且可重复的,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引来访问List中的元素,这类似于Java的数组。

 

    List示意图:

          

      List集合非常像一个数组,它可以记住每次添加元素的顺序,List长度可变。

所有的List中只能容纳单个不同类型的对象组成的表,而不是Key-Value键值对;所有List中可以有相同的元素;可以有Null元素;基于ArrayList适合查询,LinkedList适合添加、删除操作。

 

 Set

     Set是一种不包含重复的元素的无序CollectionSet实现的基础是Map,如果使用addObject obj)方法添加已经存在的对象,则会覆盖前面的对象。

 

    Set示意图:

       

     Set 集合类似于一个罐子,把一个对象添加到Set集合时,Set集合无法记住添加这个元素的顺序,所以Set里的元素不能重复否则系统无法准确识别这个元素

 

       虽然Set同List都实现了Collection接口,但是他们的实现方式却大不一样。List基本上都是以Array为基础。但是Set则是在HashMap的基础上来实现的,这个就是Set和List的根本区别。HashSet的存储方式是把HashMap中的Key作为Set的对应存储项。因为HashMap的key具有唯一性,所以Set里面存储的数据不能重复

 

 

Map

    

      Map作为一种键值对的形式进行关联的容器。一个键可以与多个键值对应,但是一个键值必须对应一个键,这样就形成了多级映射。对于键来说,像Set一样,一个Map容器中的键不允许重复,为了保持查找结果的一致性。在使用的过程中,只要保持最后一次修改的值与键对应。对于键的要求具有唯一性。

 

    Map示意图:

           


例子

     

import java.util.*;
public class TestCollection{
     public static void main(String[] args){
	      //父类引用指向子类对象,可以实现不同类型的对象
		  Collection c = new ArrayList();
		  c.add("hello");
		  c.add(new Name("f1","l1"));
		  c.add(new Integer(100));
		  System.out.println(c.size());
		  System.out.println(c);
	 }
}

 

总结

      

     Set中的数据对象没有顺序且不可重复;List中的数据对象有顺序且可重复。重复的意思是这两个对象互相equals若相等就是重复。Map存储键值对,必须保证键的唯一性。


  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 38
    评论
评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值