Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 213|回复: 0

[默认分类] Java中 Map、Set、List的基本用法

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-7-5 17:52:16 | 显示全部楼层 |阅读模式

    java集合类分为三种
    Set(集合)
    :集合中对象不按特定的方式排序。并且没有重复对象,但它有些实现类中的对象按特定方式排序。--无序,不能重复


    List(列表):集合中的对象按照检索位置排序,可以有重复对象,允许按照对象在集中的索引位置检索对象,List和数组有些相似。--有序,可以重复


    Map(映射):集合中的每一个元素包含一对键对象和值对象,集合中没有重复的键对象,值对象可以重复,它的有些实现类能对集合中的键对象进行排序。
    Collection是最基本的集合接口,声明了适用于JAVA集合(只包括Set和List)的通用方法。
    Set 和List 都继承了Conllection,但Map没有。

    Collection接口的方法:
        boolean add(Object o)   :向集合中加入一个对象的引用
        void clear()                        :删除集合中所有的对象,即不再持有这些对象的引用
        boolean isEmpty()           :判断集合是否为空
        boolean contains(Object o): 判断集合中是否持有特定对象的引用
        Iterartor iterator()              : 返回一个Iterator对象,可以用来遍历集合中的元素
        boolean remove(Object o):从集合中删除一个对象的引用
        int size()                               :返回集合中元素的数目
        Object[] toArray()                 :返回一个数组,该数组中包括集合中的所有元素
    关于:Iterator() 和toArray() 方法都用于集合的所有的元素,前者返回一个Iterator对象,后者返回一个包含集合中所有元素的数组。



    Set 的用法:
       在Java中使用Set,可以方便地将需要的类型以集合类型保存在一个变量中.主要应用在显示列表 存放的是对象的引用,没有重复对象


    1.     Set set=new HashSet();
    2.     String s1=new String("hello");
    3.     String s2=s1;
    4.     String s3=new String("world");
    5.     set.add(s1);
    6.     set.add(s2);
    7.     set.add(s3);
    8.     System.out.println(set.size());//打印集合中对象的数目 为 2。
    9.     Set 的 add()方法是如何判断对象是否已经存放在集合中?
    10.     boolean isExists=false;
    11.     Iterator iterator=set.iterator();
    12.     while(it.hasNext()){
    13.         String oldStr=it.next();
    14.         if(newStr.equals(oldStr)){
    15.         isExists=true;
    16.     }
    复制代码
    List的用法:

    1. List[<数据类型>] list = new ArrayList[<数据类型>]();
    复制代码
    1. List的常用方法有:
    复制代码
    1. [/code]
    2. [code]获得集合内元素个数:list.size();添加元素:默认添加:list.add(e);指定下标添加(添加后下标后的元素向后挪一位):list.add(index,e);删除元素:返回是否删除:list.remove(e);直接删除指定下标的元素(只删除找到的第一个相符合的元素):list.remove(index);替换元素(替换掉指定下标的元素):list.set(index,e);取出元素:list.get(index);清空集合:list.clear();判断集合中是否存在某个元素(存在返回true,不存在返回false):list.contains(e);对比两个集合中的所有元素:两个对象一定相等:list.equals(list2);两个对象不一定相等:list.hashCode() == list2.hashCode();(两个相等对象的equals方法一定为true, 但两个hashcode相等的对象不一定是相等的对象。)获得元素下标:元素存在则返回找到的第一个元素的下标,不存在则返回-1:list.indexOf(e);元素存在则返回找到的最后一个元素的下标,不存在则返回-1:list.lastIndexOf(e);判断集合是否为空(空则返回true,非空则返回false):list.isEmpty();返回Iterator集合对象:list.iterator();将集合转换为字符串:list.toString();截取集合(从fromIndex开始在toIndex前结束,[fromIndex,toIndex)):list.subList(fromIndex,toIndex);将集合转换为数组:默认类型:list.toArray();指定类型(objects为指定类型的数组对象,并将转换好的数组赋值给objects数组):list.toArray(objects);
    复制代码


    Map的用法:
    Map<Object,Object> map = new HashMap<Object,Object>();

    map.put(Object key, Object value): 向集合中加入元素
    map.remove(Object key):   删除与KEY相关的元素
    map.putAll(Map t):   将来自特定映像的所有元素添加给该映像
    map. clear(): 从映像中删除所有映射
    遍历map的几种方法:
    1、最罗嗦遍历Map的方法:

    1. Set keys = map.keySet( );
    2. if(keys != null) {
    3.     Iterator iterator = keys.iterator( );
    4.     while(iterator.hasNext( )) {
    5.     Object key = iterator.next( );
    6.     Object value = map.get(key);
    7.     }
    8. }
    复制代码
    2、
    使用Map.Entry类,你可以得到在同一时间得到所有的信息。

    Map类提供了一个称为entrySet()的方法,这个方法返回一个Map.Entry实例化后的 对象集。接着,Map.Entry类提供了一个getKey()方法和一个getValue()方法,因此,上面的代码可以被组织得更符合逻辑。
    Map.Entry同时也提供了一个setValue()方法

    1. Map<Integer,String> map = new HashMap<Integer, String>();
    2. map.put(001, "world");
    3. map.put(002, "hello");
    4. for(Map.Entry<Integer, String> entry:map.entrySet()){
    5.     System.out.println(entry.getKey()+"==="+entry.getValue());
    6. }
    7. output:
    8. 1===world
    9. 2===hello
    复制代码
    3、最简单的方法,使用增强for循环:
    1. for (int key : map.keySet()) {    System.out.println(key + " : " + map.get(key));}
    复制代码








    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-24 05:18 , Processed in 0.336548 second(s), 37 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表