栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Collection集合

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Collection集合

  这是集合框架体系

 

List集合存储元素的特点:有序,可重复   

List接口的实现类:ArrayList、linkedList 

ArrayList实现了长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率比较高 - 查询比较快

linkedList采用链表存储方式,插入、删除元素时效率比较高

1.ArrayList

增加:

boolean  add( Object element ) 把当前的element元素添加集合的尾部,成功返回true, 失败返回false;

void add(int index, E element)   在集合中指定位置上添加元素

注意:使用add方法添加元素的时候,一定要保证指定的位置前面有元素。否则会发生下标越界异常。

 public static void main(String[] args) {
        List list=new ArrayList();
        list.add("kk");
        list.add(12);
        list.add(false);
        list.add(new Student("老王"));
        System.out.println(list);
[kk, 12, false, Student{name='老王'}]

删除:

remove(Object obj) 删除集合中指定的元素

Object remove(int index)  删除集合中指定位置上的元素,并返回被删除的元素 。删除时指定的下标的位置一定要保证有元素。

clear()  清空集合中所有元素,会让集合中的size变成0。

注意:使用List调用remove如果指定的是值,这时这个值一定是下标(默认),因此如果要删除集合中存放的包装类型的数据, 这时需要把这个int值包装成对应的Integer类型,Integer.valueOf(int)

List list=new ArrayList();
        list.add("kk");
        list.add(12);
        list.add(new Student("老王"));
        list.remove(Integer.valueOf(12));//用包装类去删除
        list.remove(0);//下标去删除
        System.out.println(list);
[Student{name='老王'}]

修改:

Object set(int index, E element) 修改集合中指定位置上的数据。  原来的元素就被删除掉了。返回被替换的那个元素。

查询:

get(int index)  返回此列表中指定位置上的元素

其他一些方法:

size()  求一个集合的长度

isEmpty(), 判断这个集合是不是空的,如果为空集合返回true,否则为false

boolean contains(Object o) ,判断列表中是否存在指定元素

2.用Iterator去遍历集合
List list=new ArrayList();
        list.add("kk");
        list.add(12);
        list.add(new Student("老王"));
        Iterator iterator=list.iterator();
        while (iterator.hasNext()){
            System.out.println( iterator.next());
        }
结果:
kk
12
Student{name='老王'}
3.linkedList

方法名

说明

void  addFirst(Object o)

在列表的首部添加元素

void  addLast(Object o)

在列表的末尾添加元素

Object  getFirst()

返回列表中的第一个元素

Object  getLast()

返回列表中的最后一个元素

Object  removeFirst()

删除并返回列表中的第一个元素

Object  removeLast()

删除并返回列表中的最后一个元素

4.ArrayList 和 linkedList 比较  

二者都是List接口的实现类,存储的元素都是有序可重复的。

ArrayList底层维护的是可变数组来存放元素,查询快,增删慢。

linkedList底层采用的是链表结构,增删快,查询慢。

 5.HashSet和:Hashmap

 

当给hashset中存放元素的时候会先调用对象的hashCode方法,计算哈希值,根据哈希值来决定当前对象在集合中的存储位置。

    在存储的时候,如果遇到了哈希值相同的元素,这时集合的底层还会去调用当前对象的equals方法,判断当前正要存放的对象和

    位置上已经存在的对象是否是同一个对象,equals方法返回的true,就认为相同对象,不保存,如果equals方法返回的false,当前对象已经会被保存。

Set set=new HashSet();
        set.add("hello");
        set.add(50);
        set.add(false);
        System.out.println(set);
[50, false, hello]

 如果存的值相同会自动覆盖也就是哈希值相同

 

Set set=new HashSet();
        set.add("hello");
        set.add(50);
        set.add(50);
        System.out.println(set);
[50, hello]

这就是他的哈希值:

Set set=new HashSet();
        set.add("hello");
        set.add(50);
        set.add(120);
        Iterator iterator=set.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next().hashCode());
        }
50
120
99162322
2.Hashmap

判断:

    containsKey(Object key) 判断Map是否包含指定的key,有就返回true

    containsValue(Object value)  判断Map是否包含指定的value,有就返回true

    isEmpty() 判断Map集合是否为null,它的size 是零

     keySet(),获取map中所有的key组成一个set集合。

     entrySet() ,获取map中所有的键值对组成一个set集合。

增加:

   put(K key, V value) :把当前的key和value存放到集合中。

注意如果当前的key在集合中已经存在,那么就会用当前的value覆盖

   key对应的以前的value值,并且返回被覆盖的那个value值

 Map map=new HashMap();
        map.put("hello","ll");//"hello"就是代表key后面的"ll"就是value
        map.put("work","oo");
        map.put("uu","ll");
        System.out.println(map);
{uu=ll, work=oo, hello=ll}

key 不能相同不然你添加的value值就会覆盖前面那个key的value值; 

 

Map map=new HashMap();
        map.put("hello","ll");
        map.put("work","oo");
        map.put("uu","ll");
        map.put("uu","520");
        System.out.println(map);

       结果是:{uu=520, work=oo, hello=ll}

 

删除:

    clear();清空

    remove(Object key) 根据指定的key删除key和value

修改:

   可以利用新增方法中key唯一实现对元素的修改

获取:

    get(Object key)  根据指定key获取Map集合中key对应的value值,如果key不存在,返回null

    size()  获取key-value对应关系的个数   

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/643234.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号