Java集合: 什么是集合,集合的遍历使用

什么是集合

1、集合类存放于java.util包中。

2、集合类型主要有3种:set(集)、list(列表)和map(映射)。

3、集合存放的都是对象的引用,而非对象本身。所以我们称集合中的对象就是集合中对象的引用。

简单来讲:集合是一组复合元素的容器,用来存储,检索,控制聚合数据并提供它们之间的通信方法。
集合就是一个放数据的容器,准确的说是放数据对象引用的容器。

集合框架

核心集合接口封装了不同类型的集合,它们是java集合框架的基础,形成了下图所示的层级结构:
在这里插入图片描述
1、集合主要分为Collection和Map两个接口

2、Collection又分别被List和Set继承

3、List被AbstractList实现,然后分为3个子类,ArrayList,LinkList和Vector

4、Set被AbstractSet实现,又分为2个子类,HashSet和TreeSet

5、Map被AbstractMap实现,又分为2个子类,HashMap和TreeMap

6、Map被Hashtable实现

首先我们先来看下核心的集合接口,对他们有一个整体的认识:

Collection接口:集合框架的根接口。它是集合类框架中最具一般性的顶层接口。Java平台没有提供任何该接口的直接具体实现类,但是提供了具有各种不同特性的子接口

Set接口:不允许包含重复值的集合

**List接口:**可索引的集合,可以包含重复值。使用该接口时我们通过索引对元素进行精准的插入和查找

Map接口:提供了键值对(key/value)的映射关系的集合。关键字不能有重复值,每个关键字至多可映射一个值

集合的共用的一些方法:

int size()
获取元素个数

ArrayList<String> arrayList = new ArrayList<>()
arrayList.size()    

boolean isEmpty()
集合是否为空

ArrayList<String> arrayList = new ArrayList<>()
arrayList.isEmpty()   //返回的是布尔类型,如果返回true说明为空, flase说明不为空

boolean contains(Object element)
是否包含指定元素

ArrayList<String> arrayList = new ArrayList<>()
arrayList .contains("***")        //**表示你要判断指定的元素是不是存在这个集合里面

boolean add(E element)
添加元素,成功时返回 true

ArrayList<String> arrayList = new ArrayList<>()
arrayList.add("添加数据")

boolean remove(Object element)
删除元素,成功时返回 true

ArrayList<String> arrayList = new ArrayList<>()
arrayList.remove(Object element)     

Iterator iterator()
获取迭代器

ArrayList<String> arrayList = new ArrayList<>()
arrayList .iterator()

集合的特点:

  • List:一组数据,不唯一,有序
  • Set:多个数据,唯一,无序
  • Map:key和value成对存在,key是唯一的,value可以重复

集合的遍历输出:

  • ArrayList集合的遍历输出:
    ①: 增强for循环
 public static void main(String[] args) {
        ArrayList<String> arrayList = new ArrayList<>();
        //添加数据
              for (int i=0;i<5;i++) {
                  arrayList.add("第"+(i+1)+"条数据");
              }
        for (String s : arrayList) {
            System.out.println(s);
        }
    }

②迭代器

    public static void main(String[] args) {
        ArrayList<String> arrayList = new ArrayList<>();
        //添加数据
              for (int i=0;i<5;i++) {
                  arrayList.add("第"+(i+1)+"条数据");
              }
        Iterator<String> iterator = arrayList.iterator();
        while (iterator.hasNext()) {
            String next = iterator.next();
            System.out.println(next);
        }
    }
  • HashSet集合的遍历输出: 和List集合是一样的操作
  • HashMap集合的遍历输出: 这个集合遍历的重点掌握
 //Map是接口,建立好一个数组.通过他的子类HashMap来建立
        HashMap<Integer, String> has = new HashMap<>();
        //添加一些数据
        has.put(1, "第一名");
        // has.put(1, "第一名");   使用这个key相同value不同的时候会提示你key有相同的值不会保存进去但是不会报错
        has.put(5, "第一名");
        has.put(2, "第二名");
        has.put(3, "第三名");
        has.put(4, "第四名");
         //第一种方法:把Map的所有key存储到Set集合里面,然后通过遍历set集合的值。去循环获取map与之对应的value
        System.out.println("第二种方法:把Map的所有key存储到Set集合里面,然后通过遍历set集合的值。去循环获取map与之对应的value");
        Set<Integer> set = has.keySet();  //把Map集合has通过keyset()的方式获取所有的key存在Set集合里面
        Iterator<Integer> iterator = set.iterator(); //声明一个迭代器,用于遍历输出set集合
        while (iterator.hasNext()) {    //迭代器的循环,首先判断集合里面是不是包含有值
            Integer haskey = iterator.next();   //如果有就把集合的值赋予haskey来接受。 这个时候的haskey就是has对应的key值
            String s = has.get(haskey);      //通过Map集合has 本身带有的get(K),这个方法获取k对应的value ,用s来接受
            System.out.println("Map集合has的遍历输出key:" + haskey + "==Value:" + s);
        }
        /**
         * 第二种方法:foreach
         */
        System.out.println("第二种方法:foreach:普通形式");
        for (Integer integer : set) {
            String value = has.get(integer);
            System.out.println("has集合的key是:" + integer + "Value:" + value);
        }
        //在这里另外中的复合形的方法
        System.out.println("Foreach :复合型式");
        for (Integer integer : has.keySet()) {
            String value = has.get(integer);
            System.out.println("has集合的key是:" + integer + "Value:" + value);
        }


        /**
         *通过entymSet() 来获取
         */
        //使用entrtSet() 把Entry对象取出来,然后存方法到Set集合
        System.out.println("通过entymSet() 来获取");
        Set<Map.Entry<Integer, String>> entries = has.entrySet();
        //获取set集合的迭代器
        Iterator<Map.Entry<Integer, String>> iterator1 = entries.iterator();
        while (iterator1.hasNext()){
            Map.Entry<Integer, String> next = iterator1.next();
            //通过has.get()获取对应的value和key
            System.out.println("has集合的key是:" + next.getKey() + "Value:" + next.getValue() );
        }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值