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

你还是只会用数组吗?不懂Java集合,还想找工作?(集合概述)

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

你还是只会用数组吗?不懂Java集合,还想找工作?(集合概述)

零基础学习Java之集合概述

概述集合的分类

Collection

基本介绍常用方法代码示例 Map

基本介绍常用方法代码示例

概述

数组想必是很多java学习者都知道的容器。诚然,数组有很多的优点,比如:数组可以实现元素的快速访问;但是数组也有很多的缺点,比如:数组的长度是固定的、数组只能存放同一种类型的对象。因此它在实际的开发中用到的也不是很多,因为容器里的元素及其个数,我们大部分情况下是不能确定的,因此集合由此产生了。(实际开发中用的很多,所以说是不懂集合不要说找工作的事哈)

集合与数组一样也是相当于一个容器,可以用来存放很多类型的数据(不能存放基本数据类型数据)。那集合有哪些类型呢?

集合的分类

集合按照其存储结构可以分类为:Collection接口实现的集合和Map接口实现的集合。其中Collection表示的是一组对象,Map表示一组映射关系或者键值对。

Collection 基本介绍

Collection集合里存储的是一系列符合某种规则的元素,其又按照存储元素的特征进行了分类,即其子接口,下面是常见的子接口:

List接口:必须保持元素特定的顺序

Set接口:不能有重复元素

Queue接口:保持一个队列(先进先出)的顺序

常用方法

Collection接口中对很多常用的方法进行了声明,方便其子接口使用。下面介绍一些常用的方法:

int size() :返回此集合中的元素的数目boolean isEmpty():判断集合是否为空,返回true表示不包含任何元素boolean contains(Object o):判断集合是否包含指定元素,返回 true表示包含该元素boolean containsAll(Collection c):判断集合是否包含指定集合的所有元素,返回true表示包含Iterator iterator():返回此集合中的元素的迭代器Object[] toArray():返回包含此集合中所有元素的数组。(数组和集合之间的桥梁)boolean add(E e):确保此集合包含指定的元素(可选操作)。返回 true表示添加成功boolean addAll(Collection c):将指定集合中的所有元素添加到这个集合,返回true表示添加成功boolean remove(Object o):从这个集合中移除指定元素的一个实例,返回true表示删除成功boolean removeAll(Collection c):删除此集合中包含的指定集合所有元素,返回true表示删除成功boolean retainAll(Collection c):仅保留包含在指定集合中的这个集合中的元素(可选操作),换句话说,从这个集合中移除所有不包含在指定集合中的元素的所有元素。boolean equals(Object o):将指定的对象与此集合进行比较,以进行相等性 代码示例


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

public class Demo1 {
    public static void main(String[] args) {
        //创建一个集合对象collection1
        Collection collection1 = new ArrayList<>();
        Collection collection2 = new ArrayList<>();

        //collection1添加元素 add
        collection1.add(1);
        collection1.add(2);
        collection1.add(3);
        System.out.println("这是collection1添加元素后:"+ collection1);

        //collection2添加元素 add
        collection1.add(2);
        collection2.add(4);
        collection2.add(5);
        System.out.println("这是collection2添加元素后:"+ collection2);

        //collection1添加collection2 addAll
        collection1.addAll(collection2);
        System.out.println("这是collection1添加collection2集合后:"+ collection1);

        //collection1删除元素 remove
        collection1.remove(1);
        System.out.println("这是collection1删除元素后:"+ collection1);

        //collection1删除collection2集合中相同的元素 removeAll
        collection1.removeAll(collection2);
        System.out.println("这是collection1删除collection2集合中相同的元素后:"+ collection1);

        //判断collection1集合是否为空集合 isEmpty
        boolean empty = collection1.isEmpty();
        System.out.println("collection1集合是否为空:"+empty);

        //判断collection1集合中是否存在一个与obj对象equals相等的元素,存在返回true
        boolean contains = collection1.contains(1);
        System.out.println("collection1集合是否存在1:"+contains);

        //判断collection2集合中的元素是否在collection1集合中都存在
        boolean containsAll = collection1.containsAll(collection2);
        System.out.println("collection2集合中的元素是否在collection1集合中都存在:"+containsAll);

        //获取当前集合的大小 size();
        int size = collection1.size();
        System.out.println("collection1集合的大小:"+size);

        //获取当前集合中所有元素的数组  toArray()
        Object[] objects = collection1.toArray();
        System.out.println("collection1集合对应的数组:"+ objects);

        //获取当前集合中仅保留两个集合的交集 retainAll();
        System.out.println(collection1.removeAll(collection2));;

    }
}

Map 基本介绍

Map与Collection集合类和数组不同,其存储的是具有映射关系或者是键值对的元素。这里的元素指的是两组数据:key和value,它们都可以使任何引用类型的数据,但注意:key不能重复。这样的话就可以通过指定的key就可以取出对应的value。(Map非常重要的特征)。Map接口有四个比较重要的实现类,分别是HashMap、linkedHashMap、TreeMap和HashTable,它们的区别如下:

HashMap:元素是没有顺序的;key值可以为null,但只能有一个key为null;它是线程不安全的;linkedHashMap:继承自HashMap,它主要是用链表实现来扩展HashMap类,元素是可以有序的;TreeMap:基于红黑树数据结构的实现,键值可以使用Comparable或Comparator接口来排序;SortedMap是Map的子接口,使用它可以确保图中的条目是排好序的HashTable:它也是一个散列表,存储的内容是键值对映射;key和value不可为空;它是线程安全的;

常用方法

Map接口中对很多常用的方法进行了声明,方便其子接口使用。下面介绍一些常用的方法:

int size():返回此集合中的元素的数目boolean isEmpty():判断集合是否为空,返回true表示不包含任何元素boolean containsKey(Object key):判断Map是否包含一个指定的键映射,返回 true表示包含boolean containsValue(Object value):判断是否映射到指定的值的一个或多个键,返回 true表示存在V get(Object key):返回指定的键映射的值,或 null如果这个Map不包含的键映射V put(K key, V value):将指定的值与此映射中的指定键关联。如果映射以前包含一个键的映射,旧值将被指定的值替换void putAll(Map m):从指定的映射到这个Map复制所有的映射V remove(Object key):如果存在,则从该Map中移除一个键的映射boolean equals(Object o):将指定的对象与此映射的相等性进行比较。返回 true表示相同的映射int hashCode():返回此映射的哈希代码值default boolean remove(Object key, Object value):仅当它当前映射到指定的值时,为指定的键移除条目default boolean replace(K key,V oldValue, V newValue):仅当当前映射到指定的值时,替换指定的键的条目default V replace(K key, V value):仅当它当前映射到某一值时,替换指定的键的条目。void clear():从这个映射中移除所有的映射。这个调用返回后的Map将是空的 代码示例


import java.util.HashMap;
import java.util.jar.JarEntry;

public class Demo5 {
    public static void main(String[] args) {
        //创建 map对象
        HashMap map = new HashMap();
        HashMap map2 = new HashMap();

        //添加元素到集合
        map.put("jack", 80);
        map.put("marry", 99);
        map.put("lucy", 80);
        System.out.println(map);

        map2.put("小明", 80);
        map2.put("marry", 99);
        map2.put("小王", 80);
        System.out.println(map2);

        //返回此集合中的元素的数目
        int size = map.size();
        System.out.println("集合中的数目为:" +size);

        //判断集合是否为空,返回true表示不包含任何元素
        boolean empty = map.isEmpty();
        System.out.println("集合是否为空:" + empty);

        //判断Map是否包含一个指定的键映射,返回 true表示包含
        boolean containsKey = map.containsKey("jack");
        System.out.println("集合中是否包含jack:" + containsKey);

        //判断是否映射到指定的值的一个或多个键
        boolean containsValue = map.containsValue(80);
        System.out.println("集合中是否包含80:" + containsValue);

        //返回指定的键映射的值
        Integer integer = map.get("marry");
        System.out.println("返回marry的值:" + integer);

        //将指定的值与此映射中的指定键关联
        map.put("jack", 100);
        System.out.println(map);

        //从指定的映射到这个Map复制所有的映射
        map.putAll(map2);
        System.out.println(map);

        //从该Map中移除一个键的映射
        System.out.println(map.remove("jack"));
        System.out.println(map);

        //将指定的对象与此映射的相等性进行比较。返回 true表示相同的映射
        boolean equals = map.equals(map2);
        System.out.println(equals);

        //返回此映射的哈希代码值
        int hashCode = map.hashCode();
        System.out.println("此映射的hashCode是:" + hashCode);

        //在该映射中的每个条目执行给定的操作
        Integer replace = map.replace("jack", 110);
        System.out.println(map);

        //当前映射到指定的值时,替换指定的键的条目
        map.replace("jack",110,666);
        System.out.println(map);

        //从这个映射中移除所有的映射
        map.clear();
        System.out.println(map);

    }
}

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

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

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