集合介绍(1)

集合可以动态保存任意多个对象,使用方便

集合主要分为单列集合和双列集合(存放的是键值对key,value)

集合的框架体系

Collection接口下继承了两个子接口Set和List,他们的实现子类都是单列集合

Set接口的典型实现类有TreeSet,HashSet

List接口的典型实现类有Vector,ArrayLinkedList,ArrayList

Collection提供了一系列操作对象的方法,如add,remove,set,get(增删改查)

add可以添加任意类型数据,remove的参数可以为删除元素的索引值,或元素值

contains查找元素,和isEmpty返回一个布尔值

addAll可以传入一个集合进去,实现添加多个元素

containsAll可以传入一个集合,判断是否存在多个元素,返回布尔值

Collection接口遍历元素的方式

1.只要是实现了该接口的类都可以使用迭代器Iterator

先通过集合调用iterator方法获取一个迭代器

Iterator iterator = list.iterato();

使用itit快捷键创建循环遍历

如果希望再次使用迭代器遍历,需要重置当前的迭代器

iterator = list.iterator();

2.增强for循环(简化版iterator),也可以在数组里使用遍历

使用 I 快捷键创建循环

for(Object obj : list){

        System.out.println(obj);

}

-------------------双列集合--------------------

Map接口下的实现类都是双列集合(k,v),有Hashtable,HashMap,TreeMap,其中HashMap是核心

Hashtable的子类为Properties

LinedHashMap继承了HashMap,也实现了Map接口

提供了一系列操作对象的方法

添加相同key值的元素时,会把旧的元素替换

entrySet集合存放元素的类型Map.Entry,Entry中存放了键值对(k,v),为了方便遍历

可以使用Map.Entry提供的两个方法

Map.Entry entry;

entry.getKey();         entry.getValue();

可以分别得到键和值

Map的常用方法

put(k,v);        remove(k);        get(k);        size();        isEmpty();        clear();        containsKey(k);

Map接口的遍历方法(6种)

1.先取出所有的key,再通过key取出value

Map map = new HashMap();

Set keyset = map.keySet();//得到map的所有key值

(1)使用增强for

for(Object key : keyset) {

        System.out.println(map.get(key));

}

(2)使用迭代器

Iterator iterator =keyset.iterator();

while (iterator.hasNext()) {
    Object next =  iterator.next();
    sout(map.get(key));
}

2.取出所有的value

Collection values = map.values();

(3)增强for

for(Object value : values) {

        System.out.println(value);

}

(4)迭代器

Iterator iterator =values.iterator();

while (iterator.hasNext()) {
    Object next =  iterator.next();
    sout(next);
}

3.通过EntrySet获取k,v

Set entryset = map.entrySet();//获取所有的键值对

(5)增强for

for(Object entry : entryset) {

        Map.Entry m =(Map.Entry) entry;

        System.out.println(m.getKey());

        System.out.println(m.getValue());

}

(6)迭代器

Iterator iterator =entryset.iterator();

while (iterator.hasNext()) {
    Object next =  iterator.next();
        Map.Entry m = (Map.Entry)next;
    sout(m.getKey());
        sout(m.getValue());
}

---------------------------

HashMap底层是数组table,初始化为16,(k,v)存放在Node结点中

---------------------------------

当添加的元素超出了临界值threshold,就会扩容,扩容后数组容量是之前的2倍+1。

--------------------------------

Properties

键和值都不可以为null,如果添加相同的key,value就会被替换

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值