Java基础-day14-Collection接口·List父类接口·ArrayList子类·LinkedList 链表 ·set接口·Map接口·HashMap

本文介绍了Java中的Collection接口,包括List接口的ArrayList和LinkedList子类,Set接口的HashSet和TreeSet子类,以及Map接口和HashMap的特性。重点讨论了各集合类的数据结构、增删查改效率及应用场景。
摘要由CSDN通过智能技术生成

Day15

Collection接口

1.集合概念
是用来存放对象的数据结构,而且长度可变,可以存放不同类型的对象,并且还提供了一组操作成批对象的方法.Collection接口层次结构 中的根接口,接口不能直接使用,但是该接口提供了添加元素/删除元素/管理元素的父接口公共方法.
由于List接口与Set接口都继承了Collection接口,因此这些方法对于List集合和Set集合是通用的.

2.集合的继承结构
collection爷接口
list父类接口【数据有下标,有序,可重复】
ArraysList子类
LinkedList子类
set父类接口【数据无下标,无序,不可重复】
HashSet子类

Map父类接口【键值对的方式存数据】(不是collection的子类)
HashMap子类
在这里插入图片描述

package cn.tedu.collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;

//测试COLLECTION相关API
public class TestCollection {
   
    public static void main(String[] args) {
   
        //1.接口
        //Collection c=  new Collection() 报错因为接口不能实例化
        Collection<Integer> c = new ArrayList();//创建多态对象

        c.add(100);//向集合添加元素
        c.add(200);//向集合添加元素
        c.add(300);//向集合添加元素
        c.add(400);//向集合添加元素
        c.add(500);//向集合添加元素
        System.out.println(c);//直接打印

        //c.clear();清空集合元素
        //
        System.out.println(c.contains(300));//true判断集合是否包含指定元素
        System.out.println(c.hashCode());//哈希码值127240651
        System.out.println(c.isEmpty());//判断集合是否为空集合
        System.out.println(c.remove(300));//移除首次出现的元素并判定判断是否去除指定元素
        System.out.println(c.size());//获取当前集合元素的个数
        System.out.println(c.equals(200));//false,集合对象与Integer 200 不相等

        Object[] array = c.toArray();//Alt+回车 快捷定义变量
        //将制定的集合对象转成数组
        System.out.println(Arrays.toString(array));

        Collection <Integer> c2 = new ArrayList();

        c2.add(2);
        c2.add(4);
        c2.add(6);

        System.out.println(c2);//[2, 4, 6]
        c.addAll(c2);//把c2集合添加到c集合中
        System.out.println(c);//[100, 200, 400, 500, 2, 4, 6]
        System.out.println(c2);//[2, 4, 6]

        System.out.println(c.contains(c2));//false 因为c集合中没有一个‘c2’元素
        System.out.println(c.containsAll(c2));true判断c集合是否包含c2集合的所有元素

        System.out.println(c.retainAll(c2));//true取两集合间的交集并判断是否有交集
        System.out.println(c);//[2,4,6]

        System.out.println(c.removeAll(c2));//删除c集合中c2集合的所有元素并判断
        c.add(100);//向集合添加元素
        c.add(200);//向集合添加元素
        c.add(300);//向集合添加元素
        c.add(400);//向集合添加元素
        c.add(500);//向集合添加元素
        System.out.println(c);//直接打印
        //迭代/遍历集合中的元素
        /*
        * 1.获取集合对应的迭代器 c.iterator()
        * 2.判断集合中是否有有下个元素 it.hasNext()
        * 3.获取当前迭代到的元素it.next()*/

        Iterator<Integer> it = c.iterator();//
        while (it.hasNext()){
   
            Integer num = it.next();//next()获取本轮循环迭代到的元素
            System.out.println(num);
        }
    }
}

3.List父类接口
有序的colletion(也称为序列).
特点 :1>.元素都有下标
2>.数据是有序的
3>.允许存放重复的元素
在这里插入图片描述

package cn.tedu.collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

//List接口---抽象类
public class TestList {
   
    public static void main(String[] args) {
   
        //多态对象实现
        List<String> list = new ArrayList();

        list.add("大力娃");
        list.add("二娃");
        list.add("三娃");
        list.add("火娃");
        list.add("水娃");
        list.add("隐身娃");
        list.add("七娃")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值