Java基础之Collection集合

举报
袁袁袁袁满 发表于 2022/04/21 20:57:27 2022/04/21
1.3k+ 0 0
【摘要】 1.0 Collection集合分类Collection 接口的接口 对象的集合(单列集合)List 接口:元素按进入先后有序保存,可重复LinkedList 接口实现类, 链表, 插入删除, 没有同步, 线程不安全ArrayList 接口实现类, 数组, 随机访问, 没有同步, 线程不安全Vector 接口实现类 数组, 同步, 线程安全Stack 是Vector类的实现类Set 接口:...

1.0 Collection集合分类

Collection 接口的接口 对象的集合(单列集合)

  • List 接口:元素按进入先后有序保存,可重复
    • LinkedList 接口实现类, 链表, 插入删除, 没有同步, 线程不安全
    • ArrayList 接口实现类, 数组, 随机访问, 没有同步, 线程不安全
    • Vector 接口实现类 数组, 同步, 线程安全
    • Stack 是Vector类的实现类
  • Set 接口: 仅接收一次,不可重复,并做内部排序
    • HashSet 使用hash表(数组)存储元素
    • LinkedHashSet 链表维护元素的插入次序
    • TreeSet 底层实现为二叉树,元素排好序

1.1 Collection集合概述

  • 是单列集合的顶层接口,它表示一组对象,这些对象也称Collection元素
  • JDK不提供此接口的直接实现,它提供更具体的子接口(Set 和 List)实现
package ceshi;

import java.util.AbstractCollection;
import java.util.ArrayList;
import java.util.Collection;

public class CollectionDemo {
    public static void main(String[] args) {
        //创建Collection集合对象
        Collection<String> c = new ArrayList<String>();

        //添加元素
        c.add("hello");
        c.add("world");
        c.add("java");
        System.out.println(c); //[hello, world, java]
    }
}

1.2 Collection集合常用方法(查看所有源码快捷键)

方法名 说明
public boolean add(E e) 把给定的元素添加到当前集合中
public boolean remove(E e) 把给定的对象在当前集合中删除
public void clear() 清空集合中所有的元素
public boolean contains(Object obj) [kənˈteɪnz] 包括 判断当前集合中是否存在指定的对象
public boolean isEmpty() [ˈenpti] 判断当前集合是否为空
public int size() 返回集合中元素的个数
public Object[] toArray( ) 把集合中的元素,储存到数组中
  • 快捷键:Alt+7 打开源码中所有方法

1.3 Collection集合的遍历

  • Collection 集合遍历有三种方法:
  • 迭代器
  • foreach(增强for循环)
  • DK 1.8 开始的新技术 Lambda 表达式(了解)

1.3.1 Iterator['lɪtəreɪtə]迭代器遍历集合

  • lterator:迭代器,集合的专用遍历方式
    • Iterator<E> iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到
    • 迭代器是通过集合的**iterator()**方法得到的,所以我们说它是依赖于集合而存在的
  • Iterator中的常用方法
方法名 说明
E next() 获取迭代中的下一个元素
boolean hasNext() 如果迭代具有更多元素,则返回true

在这里插入图片描述

1.4 Collections工具类

  • 包:java.util.Collections
  • Collections 并不属于集合,而是用来操作集合的工具类
  • 常用方法(全是静态修饰,用类名调用)
方法名 说明
public static <T extends Comparable<?super T>> void sort(List<T> list) 将指定的列表按升序排序
public static void reverse(List<?> list) 反转指定列表中元素顺序
public static void shuffle(List<?> list) 使用默认的随机源随机排序指定的列表
package ceshi;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class MapDemo {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();

        list.add(30);
        list.add(20);
        list.add(50);
        list.add(10);
        list.add(40);
        System.out.println(list); //[30, 20, 50, 10, 40]

        //1,public static <T extends Comparable<?super T>> void sort(List list) 	将指定的列表按升序排序
        /*Collections.sort(list);
        System.out.println(list); //[10, 20, 30, 40, 50]*/

        //2,public static void reverse(List<?> list) 	反转指定列表中元素顺序
        /*Collections.reverse(list);
        System.out.println(list); //[40, 10, 50, 20, 30]*/

        //3,public static void shuffle(List<?> list) 	使用默认的随机源随机排序指定的列表
        Collections.shuffle(list);
        System.out.println(list);
        //第一次运行[10, 40, 30, 50, 20]
        //第二次运行[10, 30, 20, 50, 40]
    }
}
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。