【自学笔记】集合类概述(有点没理解清楚)

集合类又被成为容器。集合的长度是可变的,存放的是对象的引用。继承体系如下。
这里写图片描述

Collection接口

他是层次结构中的根接口

Collection接口的常用方法:
add(E e):将指定对象添加到该集合中
remove(Object object):将指定对象从该集合中移除
isEmpty():返回boolean值,判断当前集合是否为空
iterator():迭代器,用于集合中的遍历
size():返回int值,获取该集合中元素的个数

通过迭代器遍历集合

Collection <String>list=new ArrayList<String>();//实例化集合类对象
    list.add("a");//集合中添加数据
    list.add("b");
    list.add("c");
    Iterator <String>it=list.iterator();//创建迭代器
            while(it.hasNext()){        //判断是否有下一个元素
        String str=(String)it.next();   //获取元素
        System.out.println(str);
        }

注:Iterator的next()方法返回的是Object
这里写图片描述

List集合

List集合中的元素允许重复,元素的顺序就是插入的顺序,类似数组。继承Collection接口,包含他的所有方法,他还定义了下面的两个重要方法。
get(int index):获取指定索引位置的元素
set(int index,Object object):将指定索引位置的元素修改为指定对象

List接口的实现类
ArrayList:实现了可变的数组,允许保存所有元素,包括null,根据索引位置随机快速访问,缺点插入对象和删除对象速度慢。
LinkedList:采用表链结构保存对象,有点插入删除对象速度快,缺点随机访问元素速度慢。

实例化操作:

List<E>list=new ArrayList<>();
List<E>list1=new LinkedList<>();
List <String>list=new ArrayList<String>();
    list.add("a");
    list.add("b");
    list.add("c");
    int i=(int)(Math.random()*(list.size()-1));
    System.out.println("随机获取了一个数是:"+list.get(i));
    list.remove(2);
    System.out.println("移除了索引为2的元素");
    Iterator <String>it=list.iterator();
    while(it.hasNext()){
        String str=(String)it.next();
        System.out.println(str);
        }

这里写图片描述

Set集合

Set集合中的对象不按特定方式排序,不能包含重复对象,同样继承了Collection。
Set常用的实现类:
HashSet:由哈希表支持,不能保证排列顺序,允许null元素
TreeSet:在遍历集合时按自然顺序递增排序,也可以根据指定比较器递增排序

                TreeSet类增加的方法
first():返回此set中当前第一个(最低)的元素
laset():返回此Set中当前最后一个(最高)的元素
comparator():返回此set中的元素进行排序的比较器,如果此Set使用自然顺序,则返回null。
headSet(E toElement):返回一个新的Set集合,新集合包含toElement。。。
*****过于抽象,无法理解**!***

Map集合

他没有继承Collection接口,他提供的是Key和value的映射。Map中不能包含相同的Key,每个Key也只能映射一个values。用的一种“散列技术”进行存储。

常用方法:
put(K key,V value):向集合中添加指定的key与value的映射关系
containskey(Object key):如果此映射关系包含指定的key的映射关系,则返回true
containsValue(Object value):如果此映射将一个或多个key映射到指定值,则返回true
get(Object key):存在指定key对象,返回对应的值,不存在返回null
keySet():返回该集合中的所有key对象形成的Set集合
values():返回该集合中所有值对象形成的Collection集合

    Map<String,String>map=new HashMap<String,String>();//创建Map示例
        map.put("1","苹果");      //添加数据
        map.put("2","鸭梨");
        Set<String>set=map.keySet();
        Iterator<String>it=set.iterator();
        System.out.println("打印Key集合中的元素:");
        while(it.hasNext()){
            System.out.println(it.next());
        }
        Collection<String>coll=map.values();
        it=coll.iterator();
        System.out.println("values集合中的元素:");
        while(it.hasNext()){
            System.out.println(it.next());
        }

这里写图片描述
Map接口常用实现类有HashMap和TreeMap,一般用HashMap的比较多,HashMap基于哈希表的接口实现,添加删除映射关系速度快,查询速度也快。
而TreeMap中的映射关系存在顺序的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值