Java集合框架和泛型

java第十一章练习题(使用泛型和集合框架) 第十一章练习题(使用泛型和集合框架)       1.集合API 中Set接口的特点是哪项?     A.不允许重复元素,元素有顺序     B.允许重复元素,元素无顺序     C.允许重复元素,元素有顺序     D.不允许重复元素,元素无顺序       2.实现了Set接口的类是哪项?     A.  ArrayList     B.  HashTable     C... 阅读详情

目录

一,集合框架

二,集合框架中的方法

List接口的常用方法

 LinkedList的特殊方法

 ArrayList与LinkedList对比

 Set接口

 Map接口

Map接口的常用方法

三,集合接口中部分方法展示

四,遍历集合的方式

1)迭代器遍历

2)增强for循环遍历

3)普通for循环

4)lambda表达式遍历

五,泛型


 

一,集合框架

 Collection接口存储一组不唯一,无序的对象

 List 接口继承Collection接口,存储一组不唯一,有序

Set 接口存储一组唯一,无序的对象  

ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高。

LinkedList采用链表存储方式。插入、删除元素时效率比较高 

二,集合框架中的方法

List接口的常用方法

 LinkedList的特殊方法

 ArrayList与LinkedList对比

 Set接口

 Map接口

 Map接口存储一组键值对象,提供key到value的映射

Map接口常用的实现类HashMap

HashMap类的特点

不保证映射的顺序,特别是不保证顺序恒久不变

数据添加到HashMap集合后,所有数据的数据类型将转换为Object类型,所以从其中获取数据

需要进行强制类型转换。

Map接口的常用方法

三,集合接口中部分方法展示

  public static void main(String[] args) {
    /*    //创建Collection接口的实现类的对象
        Collection coll = new ArrayList();

        // 1 ,add(Object e)方法:将元素e添加到集合coll中
        coll.add("AA");
        coll.add("BB");
        coll.add(123);
        coll.add(new Person());

        // 2, size()方法:获取添加元素的个数
        System.out.println(coll.size());

       //在创建一个集合coll1
        Collection coll1 = new ArrayList();
        coll1.add(456);
        coll1.add("cc");

        // 3, addAll(Collection coll1)方法:将coll1集合中的元素添加到当前集合中
        coll.addAll(coll1);

        System.out.println(coll.size());
        //遍历一下coll集合
        System.out.println(coll);

        //4, clear()方法: 清空集合元素
        coll.clear();
        System.out.println(coll);

        //5,isEmpty()方法:判断当前集合是否为空
        System.out.println(coll.isEmpty());*/

        System.out.println("*****************************************************************");

      /*  Collection coll = new ArrayList();
        coll.add(123);
        coll.add(456);
        coll.add(new Person("Jerry",20));
        coll.add(new String("Tom"));
        coll.add(false);
        // 6, contains(Object obj)方法:判断当前集合中是否包含obj
        boolean contains = coll.contains(123);
        System.out.println(contains);//ture
        System.out.println(coll.contains(new String("Tom")));//ture
        System.out.println(coll.contains(new Person("Jerry",20)));//false ,   person中必须重写equ方法才可以输出ture

        //7,  containsAll(Collection coll1):判断形参coll1中所有元素是否都存在于当前集合中
      // collection coll1 =  Arrays.asList(123,456);
        System.out.println(coll.containsAll(Arrays.asList(123,4567)));

        //8, remove(Object obj):从当前集合中移除obj元素
        coll.remove(123);
        System.out.println(coll);

        //9, removeAll(collection coll1):差集:从当前集合中移除coll1中所有元素
        Collection coll1 = Arrays.asList(123,456);
        coll.removeAll(coll1);
        System.out.println(coll);
        System.out.println("**********************************************************");

        //10, retainAll(Collection coll1):交集:获取当前集合和coll1集合的交集,并返回
        Collection coll2 = Arrays.asList(456,false);
        System.out.println(coll);*/


     /*   Collection coll = new ArrayList();
        coll.add(123);
        coll.add(456);
        coll.add(new Person("Jerry",20));
        coll.add(new String("Tom"));
        coll.add(false);

        //11, hashCode() :返回当前对象的哈希值
        System.out.println(coll.hashCode());

        //12, toArray() 集合转换为数组
        Object[]arr = coll.toArray();
        for (int i = 0;i < arr.length;i++){
            System.out.println(arr[i]);
        }

        //13, 数组转换为集合:调用Arrays类的静态方法asList()
        List<String>list = Arrays.asList(new String[]{"AA","BB","CC"});
        System.out.println(list);

        //14, 遍历集合
        //(1)普通for循环
        Iterator iterator = coll.iterator();//迭代器
        for (int i = 0;i < coll.size();i++){
            System.out.println(iterator.next());
        }

        //(2)增强for循环:for(集合元素的类型  局部变量 : 集合对象)
        //内部仍然用了迭代器
        for (Object obj : coll){
            System.out.println(obj);
        }*/

        //(3)迭代器遍历

        Collection coll = new ArrayList();
        coll.add(123);
        coll.add(456);
        coll.add(new Person("Jerry",20));
        coll.add(new String("Tom"));
        coll.add(false);

        Iterator iterator = coll.iterator();//迭代器
        while (iterator.hasNext()){
            Object obj = iterator.next();
            if ("Tom".equals(obj)){
                iterator.remove();
            }
        }

        //遍历删除后的集合
        iterator = coll.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }


       

四,遍历集合的方式

1)迭代器遍历

Iterator iterator = coll.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }

2)增强for循环遍历

增强for循环:for(集合元素的类型  局部变量 : 集合对象)
        //内部仍然用了迭代器
        for (Object obj : coll){
            System.out.println(obj);

3)普通for循环

普通for循环
        Iterator iterator = coll.iterator();//迭代器
        for (int i = 0;i < coll.size();i++){
            System.out.println(iterator.next());

4)lambda表达式遍历

//遍历List
        List<String> list = new ArrayList<>(Arrays.asList("aa", "bb", "cc"));
        list.forEach(n -> System.out.println(n));
 //遍历Map
        Map<String, String> map = new HashMap<String, String>() {{
            put("key1", "value1");
            put("key2", "value2");
            put("key3", "value3");
        }};
        map.forEach((k,v)->System.out.println("Key:" + k + "-----Value:" + v));

五,泛型

泛型的本质是参数化类型:将所操作的数据类型指定为一个参数,使代码可以应用于多种类型。

泛型的定义:将对象的类型作为参数,指定到其他类或者方法上,从而保证类型转换的安全性和

定性。

泛型的优点

所有强制转换都是自动和隐式进行的,安全简单。

提高了代码的重用率

格式:

 Map<String, String> stu = new HashMap<>();

Java集合框架及泛型 集合框架及泛型的介绍和基础理解,方便大家了解集合框架及泛型。 立即下载

相关推荐

利用NURBS曲线进行点云曲面拟合算法

点云拟合曲面算法是将点云数据拟合成一个二次或高次曲面模型的算法。这种算法主要用于三维模型重建、计算机视觉、机器人感知、医学图像处理等领域。最小二乘法(Least Squares Method):通过最小化点到曲面距离的平方和来拟合曲面模型。三角剖分算法(Triangulation-Based Method):将点云构建成三角网格,再拟合成曲面模型。隐式曲面算法(Implicit Surface Method):通过定义一个隐式函数来表示曲面,然后用点云数据来估计隐式函数的系数。

weixin_44770969的博客 1万+

【Java高级特性】集合框架和泛型(一)

Java提供了一套性能优良、使用方便的集合框架。主要有3大接口:List接口、Set接口、Map接口。主要实现类:ArrayList类和LinkedList类、HashSet类、HashMap类。

baaa111的博客 763

Avellaneda & Stoikov’s market-making strategy 工程化处理

前2篇文章详细介绍了AS存货模型的做市策略,这次对于这些公式里面一些希腊字母的取值是如何计算的,如何做工程化并应用到生产环境中做一些说明。这个里面有一些重要参数:很直观,可以直接取值的有:s = current market mid price (中间价,也就是【最佳卖价+最佳买价】/2)q = quantity of assets in inventory of base asset (也就是买入多少价值的股票数量)

weixin_42480337的博客 7068

集合框架和泛型(详解)

集合框架和泛型(详解)

没有简介 843

LLMOps的崛起:如何利用Langfuse和Opik构建高效的模型监控与评估体系

本文探讨了LLMOps的崛起,详细介绍了如何利用Langfuse和Opik构建高效的模型监控与评估体系。通过开源工具Langfuse的全景监控方案和Opik的三层评估体系,帮助AI工程团队实现大语言模型的全生命周期管理,提升模型性能和迭代效率。文章还提供了实战技巧和工具链集成方案,助力企业优化AI应用。

ll5678的博客 680

Altium Designer操作技巧(12)——如何进行邮票孔拼版?

【摘要】本文详细介绍了PCB设计中邮票孔拼板的全流程操作方法。首先解释了邮票孔拼板的定义、核心目的(提高贴片效率、方便生产)和适用场景(异形板、V-CUT无法实现的情况)。重点阐述了关键设计参数,包括孔径、数量、间隙等规范要求,并提供了两种具体操作方案:传统复制粘贴法和新版阵列放置法。文章通过图文详细演示了从PCB复制、邮票孔添加、板框定义到定位孔和Mark点设置的完整步骤,最后强调了对称性、非金属化孔等设计要点,以及需要与板厂确认工艺参数等注意事项。

u012526819的博客 1677

Java集合与泛型

​ (1)定义含泛型的对象​ 定义一个含有泛型的类,模拟ArrayList集合​ 泛型是一个未知的数据类型,当不确定什么数据类型时可以使用泛型创建可以接受任意数据类型的类。} }​ (2)定义含泛型的方法​ 使用:在调用方法的时候确定泛型的数据类型(向方法参数列表中传递什么数据类型的数据,泛型就是什么数据类型)//定义含泛型方法 public < M > void methos1(M m) {

weixin_44200200的博客 653

异常数据(outlier data)处理基于分位数法(箱图法、箱型法)替换及删除方案

异常数据(outlier data)处理基于分位数法(箱图法、箱型法)替换及删除方案 简单统计法: 这个原则有个条件:数据需要服从正态分布。 在3倍标准差原则下,异常值如超过3倍标准差,那么可以将其视为异常值。正负3的概率是99.7%,那么距离平均值3之外的值出现的概率为P(|x-u| > 3) <= 0.003,属于极个别的小概率事件。如果数据不服从正态分布,也可以用远离平均值的多少倍标准差来描述。 分位数法(箱图法、箱型法): 并不是说从高斯分布中抽出的所有数据都符..

data+scenario+science+insight 1795

Java的集合框架和泛型

Java 集合框架,又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces和其实现类 classes。其主要表现为将多个元素 element 置于一个单元中,用于对这些元素进行快速、便捷的存储store、检索retrieve、管理manipulate,即平时我们俗称的增删查改CRUD。数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。

2302_77179144的博客 1179

Open3D 点云变换【2025最新版】

点云平移、旋转、缩放、欧式变换的python代码实现。博客长期更新,本文最近更新时间为:2025年1月16日。

点云侠的博客 37万+

用 Python 和 XGBoost 进行疾病诊断预测

疾病诊断预测是医疗领域的重要研究方向,准确的疾病诊断预测可以帮助医生提前制定治疗方案,提高治疗效果,降低医疗成本。本文章的目的是介绍如何使用 Python 和 XGBoost 算法构建疾病诊断预测模型。范围涵盖了从数据预处理、模型训练到模型评估的整个流程,同时通过实际案例展示如何将该模型应用于疾病诊断预测中。本文首先介绍了疾病诊断预测的背景和 XGBoost 算法的核心概念,然后详细讲解了 XGBoost 算法的原理和具体操作步骤,包括 Python 代码实现。

AI Python 编程之道的博客 1064

Java集合框架和泛型机制

1、 2、泛型 应用背景:存入容器的对象在取出时需要强制转换类型,因为对象加入容器时都被转化为Object类型,而取出时又要转成实际类型。 在Java中向下类型转换时容易出现ClassCastException的异常,这时应当尽量避免。有什么办法可以让装入容器中的数据保存自己的类型而不被转化为Object对象呢,这就需要用到JDK5.0支持的新功能——Java的泛型。 定义:泛型只

liumei90 4867

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【Java高级编程】集合框架和泛型

Java集合框架提供了比数组更灵活的存储方案,主要包括List(有序可重复)、Set(无序不可重复)和Map(键值对)三大接口。ArrayList基于动态数组实现,适合随机访问;LinkedList基于链表,适合频繁增删。HashSet实现Set接口,存储唯一元素;HashMap实现Map接口,提供高效键值查询。泛型可增强类型安全性,避免强制转换。Collections工具类提供排序、查找等功能。集合框架通过不同实现类满足各类数据存储需求,解决了数组长度固定、操作受限等问题。

2401_84149564的博客 1078

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【Java】集合框架和泛型(三)

(1)将对象的类型作为参数,指定到其他类或者方法上,从而保证类型转换的安全性和稳定性。这就是泛型。泛型的本质就是参数化类型。(2)泛型的定义语法格式如下:类1或者接口 对象 = new 类2();注意:-->“类2”可以是“类1”本身,可以是“类1”的子类,还可以是接口的实现类。-->“类2”的类型实参必须和“类1”中的类型实参相同。(3)例如:ArrayList list = new ArrayList();

swy2560666141的博客 872

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

集合框架和泛型——JAVA

@月月鸟 集合 数组与集合的区别 数组可以存储基本数据类型或者引用数据类型,集合只能存储引用数据类型,如果存储基本数据类型,会自动转换为包装类型 。 数组在定义的时候,就会确定存储的数据类型,即只能存储一种数据类型,集合中如果没有泛型限制,默认存储的都是Object类型。 数组的长度是固定不变的,不能够进行自动增长,而集合是可以根据数据的多少进行自动增长。 List接口 1. 使用Arra...

Angels_Descent的博客 513

Java高级编程–集合框架和泛型

本文介绍了Java集合框架的核心内容,重点讲解了List和Set接口及其实现类。主要内容包括:1)集合框架的作用是动态存储对象,位于java.util包中;2)List接口有序可重复,常用实现类ArrayList基于动态数组,LinkedList基于双向链表,分别适用于查询和增删场景;3)Set接口无序唯一,HashSet通过equals()方法判断对象是否重复,使用迭代器遍历Set集合。文章通过代码示例详细演示了ArrayList和LinkedList的常用操作方法,以及HashSet的特性与遍历方式,为

2301_77287584的博客 1563

Java 集合框架中的 List、ArrayList 和 泛型 实例

在这个综合案例中,我们展示了如何使用。

Yhame的博客 1519

JAVA高级编程之集合框架和泛型(超详细)

Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中。

sksnbdkdisbsnskd的博客 1319

java集合框架和泛型

---恢复内容开始---    集合:用来存储多个元素 数组和集合区别:   数组的长度是固定的;集合的长度是可变的   数组存储的类型是同一类,可以存储基本数据类型;集合存储的都是对象,对象类型可以不一致 java集合类主要由Map接口和Collection接口派生而来,Collection接口有两个常用的子接口,List接口和Set接口,所以通常说java集合框架由三...

weixin_30583563的博客 85

【 Java高级编程 1】集合框架和泛型

本文介绍了Java集合框架和泛型,重点讲解了List、Set、Map三种接口及其实现类。主要内容包括:1)Collection接口存储不唯一、无序对象;2)List接口实现类ArrayList(数组实现,查询快)和LinkedList(链表实现,增删快)的区别;3)Set接口存储唯一、无序对象,使用HashSet实现;4)Map接口以键值对存储数据,常用HashMap实现;5)各集合的遍历方法,包括迭代器和增强for循环。文章通过代码示例展示了集合的基本操作和使用场景。

Ktugihv的博客 1172

JAVA高级API——集合框架和泛型

JAVA集合框架

m0_60439374的博客 217

编程自学指南:java程序设计开发,Java 泛型与集合框架,理解泛型的概念、作用和基本语法,泛型的定义和使用,集合框架中常用集合类的基本操作

编程自学指南:java程序设计开发,Java 泛型与集合框架,理解泛型的概念、作用和基本语法,泛型的定义和使用,集合框架中常用集合类的基本操作

zl515035644的博客 976
上一篇: Java基础常用关键字
下一篇: Java------------------------------多线程
lhjava1234
博客等级 码龄4年 4粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值