Java语法-集合

Java语法

Day19

晨考

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Collections工具类

/*
Collection  集合工具类   此类中的方法全部为静态方法   此类种提供了用于操作集合的各种方法swap(List<?> list,int i,int j)  交换指定位置的集合中的元素
sort(List<T> list,Comparator<? super T> c) 根据指定的比较器引起的顺序对指定的列表进行排序
reverse(List<?> list)  反转指定列表中元素的顺序。
replaceAll(List<T> list, T oldVal,T newVal) 将列表中一个指定值的所有出现替换为另一个
min(Collection<? extends T> coll)  根据其元素的  自然顺序返回给定集合的最小元素
fill(List<? super T> list, T obj)   用指定的元素代替指定列表的所有元素
binarySearch(List<? extends Comparable<? super T>> list,T key)  使用二叉搜索算法搜索指定对象的
*/
public class TestCollections {public static void main(String[] args){List<Integer> list = new ArrayList<>();list.add(125);list.add(896);list.add(666);list.add(258);list.add(321);Collections.sort(list);for(Integer integer : list){System.out.println("integer = " + integer);}System.out.println("-----------------------------------------");int index = Collection.binarySearch(list,666);System.out.println("index = " + index);System.out.println("-----------------------------------------");// 获取集合中最大元素  要求元素必须可以比较大小 即  实现Comparable接口  或者  定义Comparator实现类Integer max = Collections.max(list);System.out.println("max = " + max);System.out.println("-----------------------------------------");Integer min = Collections.min(list);System.out.println("min = " + min);System.out.println("-----------------------------------------");// 交换指定位置的元素Collections.swap(list,0,3);for(Integer integer : list){System.out.println("integer = " + integer);}System.out.println("-----------------------------------------");// 2使用指定元素填充集合Collections.fill(list,999);for(Integer integer : list){System.out.println("integer = " + integer);}}
}

泛型

/*
泛型: 用于统一数据类型泛型可以使用的位置:类、接口、形参、返回值、属性自定义泛型,如何书写(泛型的名称可以使用任何单词 字母 大小写都可以 但是我们只推荐使用一些有公认的含义的一些大写字母)K    key      键
V    Value		值
T    Type		类型
E	Element		元素
R	Return		返回值
P	Parameter	参数
N	Number		数值  表示范围为Number及其子类泛型初始化的时机:
1.类声明的泛型   是随着当前类创建对象初始化
2.接口声明的泛型  是随着实现类实现接口的初始化
*/
public class TestGenericType {}class A<T>{public void m1(T t){System.out.println("t = " + t);}public T m2(){return null;}
}class TestA{public static void main(String[] args){A a1 = new A();a1.m1("abc");System.out.println(a1.m2());A<Integer> a2 = new A<Integer>();a2.m1(100);System.out.println(a2.m2());A<Double> a3 = new A<Double>();a3.m1(100.5);System.out.println(a3.m2());}
}interface C<R,P>{R m1(P p);
}class C1 implements C<Boolean,String>{@Overridepublic Boolean m1(String s){return "abc".startsWith("a");}
}class C2 implements C<Double,String>{@Overridepublic Double m1(String s){return Double.parseDouble(s);}
}class TestC{public static void main(String[] args){C1 c1 = new C1();System.out.println(c1.m1("abc"));C2 c2 = new C2();System.out.println(c2.m1("123"));}
}
class Animal{}
class Pet extends Animal{}
class Dog extends Pet{}
class Cat extends Pet{}class TestPet{public static void m1(List<Pet> list){}// 泛型是不存在类型自动提升 // 要求形参为Pet类型  或者  Pet类的任意子类类型// ? extends 父类  :  表示泛型可以为父类  以及  父类的任何子类类型// Pet类的父类可以吗?public static void m2(List<? extends Pet> list){}/*要求:泛型为Dog  以及 Dog类的任何父类? super  子类: 表示反省可以为子类  以及  任何子类的父类表示设置泛型的下限  没有上限*/public static void main(String[] args){Vector<Pet> list1 = new Vector();ArrayList<Pet> list2 = new ArrayList<>();LinkedList<Pet> list3 = new LinkedList<>();m1(list1);m1(list2);m1(list3);System.out.println("---------------------------------------");Vector<Cat> list4 = new Vector();ArrayList<Pet> list5 = new ArrayList<>();m2(list4);m2(list5);m1(list1);ArrayList<Animal> list6 = new ArrayList<>();m2(list6);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/21194.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络缓存加速技术解析:从诞生到演进

目录 早期探索&#xff1a;浏览器缓存的出现 网络架构升级&#xff1a;代理服务器缓存的应用 全球化加速&#xff1a;CDN 缓存的崛起深入了解CDNhttps://blog.csdn.net/m0_68472908/article/details/145744082?spm1001.2014.3001.5501 技术革新&#xff1a;HTTP/2 协议带来…

深度学习的力量:精准肿瘤检测从此不再遥远

目录 引言 一、医学图像分析的挑战与深度学习的优势 1.1 医学图像分析的挑战 1.2 深度学习的优势 二、肿瘤检测的深度学习模型设计 2.1 卷积神经网络&#xff08;CNN&#xff09;的基本原理 2.2 网络架构设计 2.3 模型训练 三、肿瘤检测中的挑战与解决方案 3.1 数据不…

蓝桥杯学习大纲

&#xff08;致酷德与热爱算法、编程的小伙伴们&#xff09; 在查阅了相当多的资料后&#xff0c;发现没有那篇博客、文章很符合我们备战蓝桥杯的学习路径。所以&#xff0c;干脆自己整理一篇&#xff0c;欢迎大家补充&#xff01; 一、蓝桥必备高频考点 我们以此为重点学习…

利用AFE+MCU构建电池管理系统(BMS)

前言 实际BMS项目中&#xff0c;可能会综合考虑成本、可拓展、通信交互等&#xff0c;用AFE&#xff08;模拟前端&#xff09;MCU&#xff08;微控制器&#xff09;实现BMS&#xff08;电池管理系统&#xff09;。 希望看到这篇博客的朋友能指出错误或提供改进建议。 有纰漏…

RT-Thread+STM32L475VET6实现呼吸灯

文章目录 前言一、板载资源资源说明二、具体步骤1.新建rt_thread项目2. 打开PWM设备驱动3. 在Stm32CubeMX配置定时器3.1打开Stm32CubeMX3.2 使用外部高速时钟&#xff0c;并修改时钟树3.3打开定时器1&#xff0c;并配置通道一为PWM输出模式(定时器根据自己需求调整)3.4 打开串口…

新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)

视频教程和更多福利在我主页简介或专栏里 &#xff08;不懂都可以来问我 专栏找我哦&#xff09; 如果对你有帮助你可以来专栏找我&#xff0c;我可以无偿分享给你对你更有帮助的一些经验和资料哦 目录&#xff1a; 一、XSS的三种类型&#xff1a; 二、XSS攻击的危害&#x…

详解TCP协议多种机制

1.TCP报文格式 为了方便后续各位深入理解TCP机制&#xff0c;我们有必要先了解一下TCP的报文格式&#xff0c;首先我们先来看如下图 第四行那六个单词分别有不同的作用&#xff0c;初始为0&#xff0c;无作用&#xff0c;置为1即代表不同作用&#xff0c;具体后面会介绍。 我…

Python蓝桥杯刷题-小数第n位详解

题目描述 我们知道&#xff0c;整数做除法时&#xff0c;有时得到有限小数&#xff0c;有时得到无限循环小数。 如果我们把有限小数的末尾加上无限多个 0&#xff0c;它们就有了统一的形式。 本题的任务是&#xff1a;在上面的约定下&#xff0c;求整数除法小数点后的第 n 位开…

android,flutter 混合开发,pigeon通信,传参

文章目录 app效果native和flutter通信的基础知识1. 编解码器 一致性和完整性&#xff0c;安全性&#xff0c;性能优化2. android代码3. dart代码 1. 创建flutter_module2.修改 Android 项目的 settings.gradle&#xff0c;添加 Flutter module3. 在 Android app 的 build.gradl…

Redis 客户端C++使用

安装 redis-plus-plus 在C中使用Redis&#xff0c;通常需要借助第三方库来实现与Redis服务器的交互。目前比较流行的库有 redis-plus-plus 和 hiredis。redis-plus-plus 是基于 hiredis 实现的&#xff0c;hiredis 是⼀个 C 语⾔实现的 redis 客⼾端&#xff0c;因此需要先安装…

Python的那些事第二十二篇:基于 Python 的 Django 框架在 Web 开发中的应用研究

基于 Python 的 Django 框架在 Web 开发中的应用研究 摘要 Django 是一个基于 Python 的高级 Web 框架,以其开发效率高、安全性和可扩展性强等特点被广泛应用于现代 Web 开发。本文首先介绍了 Django 的基本架构和核心特性,然后通过一个实际的 Web 开发项目案例,展示了 Dj…

亲测Windows部署Ollama+WebUI可视化

一. Ollama下载 登录Ollama官网(Ollama)点击Download进行下载 如果下载很慢可用以下地址下载&#xff1a; https://github.com/ollama/ollama/releases/download/v0.5.7/OllamaSetup.exe 在DeepSeek官网上&#xff0c;你可以直接点击【model】 到达这个界面之后&#xff0c;…

SpringBoot2.0整合Redis(Lettuce版本)

前言&#xff1a; 目前java操作redis的客户端有jedis跟Lettuce。在springboot1.x系列中&#xff0c;其中使用的是jedis, 但是到了springboot2.x其中使用的是Lettuce。 因为我们的版本是springboot2.x系列&#xff0c;所以今天使用的是Lettuce。关于jedis跟lettuce的区别&#…

自由学习记录(36)

Linux Linux 是一个开源的操作系统&#xff0c;其内核及大部分组件都遵循自由软件许可证&#xff08;如 GPL&#xff09;&#xff0c;允许用户查看、修改和分发代码。这种开放性使得开发者和企业可以根据自己的需求定制系统​。 “Linux”严格来说只是指由Linus Torvalds最初开…

【数据分享】1929-2024年全球站点的逐年降雪深度数据(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、能见度等指标&#xff0c;说到气象数据&#xff0c;最详细的气象数据是具体到气象监测站点的数据&#xff01; 有关气象指标的监测站点数据&#xff0c;之前我们分享过1929-2024年全球气象站…

如何使用Redis实现分布式锁

通常情况下&#xff0c;我们一般会选择基于 Redis 或者 ZooKeeper 实现分布式锁&#xff0c;Redis 用的要更多一点&#xff0c;我这里也先以 Redis 为例介绍分布式锁的实现。 基于 Redis 实现分布式锁 如何基于 Redis 实现一个最简易的分布式锁&#xff1f; 不论是本地锁还是…

【办公类-90-02】】20250215大班周计划四类活动的写法(分散运动、户外游戏、个别化综合)(基础列表采用读取WORD表格单元格数据,非采用切片组合)

背景需求&#xff1a; 做了中班的四类活动安排表&#xff0c;我顺便给大班做一套 【办公类-90-01】】20250213中班周计划四类活动的写法&#xff08;分散运动、户外游戏、个别化&#xff08;美工室图书吧探索室&#xff09;&#xff09;-CSDN博客文章浏览阅读874次&#xff0…

scroll、offset、client三大家族和getBoundingClientRect方法

scroll、offset、client三大家族和getBoundingClientRect方法 1.offset(只能读,不能修改&#xff09;2.client(只能读,不能修改&#xff09;3.scroll滚动家族4.getBoundingClientRect方法 1.offset(只能读,不能修改&#xff09; offsetParent:离当前元素最近的有定位的祖先元素…

【LeetCode】LCR 139. 训练计划 I

题目 教练使用整数数组 actions 记录一系列核心肌群训练项目编号。为增强训练趣味性&#xff0c;需要将所有奇数编号训练项目调整至偶数编号训练项目之前。请将调整后的训练项目编号以 数组 形式返回。 示例 1&#xff1a; 输入&#xff1a;actions [1,2,3,4,5] 输出&#…

Ubuntu 20.04源码安装opencv 4.5.0

安装依赖项 sudo apt install -y g sudo apt install -y cmake sudo apt install -y make sudo apt install -y wget unzip安装opencv依赖库 sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev l…