Java语言程序设计——篇十一(5)

news2024/11/16 9:00:38

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

       🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿

  • 欢迎大家:这里是我的学习笔记、总结知识的地方,喜欢的话请三连,有问题可以私信🌳🌳🌳
    您的点赞👍、关注➕、收藏⭐️、评论📝、私信📧是我最大的支持与鼓舞!!!🌻🌻🌻

集合——Map、Collections类

  • Map接口及实现类
    • Map接口操作
    • Map接口的实现类
      • 实战演练
  • Collections类
    • Collections类 — 排序
      • 实战演练
    • Collections类 — 查找
      • 实战演练
    • Collections类 — 打乱元素次序
      • 实战演练
    • Collections类 — 求极值
      • 实战演练
    • Collections类 — 其他常用方法

Map接口及实现类

  • Map是用来存储 “键/值”对 的对象。在Map中存储的关键字和值都必须是对象,并要求关键字是唯一的,而值可以重复。
    在这里插入图片描述

Map接口操作

  • Map接口基本操作:
  public V put(K key, V value)
  public V get(Object key)
  public V remove(Object key)
  public int size()
  public void clear()
  public Set<K> keySet()
  public Collection<V> values()

Map接口的实现类

  • Map接口的常用实现类有HashMap、TreeMap。
  • HashMap类以散列方法存放“键/值”对。其构造方法:
HashMap()
 HashMap(int initialCapacity)
 HashMap(Map m)
  • TreeMap类保证Map中的“键/值”对按关键字升序排序。其构造方法:
TreeMap()
TreeMap(Comparator c)
TreeMap(Map m)

实战演练

例1:HashMapDemo.java

import java.util.*;
public class HashMapDemo {
public static void main(String[] args) {
   String[] country={"中国","印度","澳大利亚","德国","古巴",
		        "希腊","日本"};
   String[] capital={"Beijing","New Delhi","Canberra","Berlin",
                                "Havana","Athens","Tokyo"};
   Map<String, String> m = new HashMap<>();
   for(int i = 0;i<country.length;i++)
        m.put(country[i], capital[i]);
   System.out.println("共有 " + m.size() + " 个国家:");
   System.out.println(m);
   System.out.println(m.get("中国"));   // Beijing
   m.remove("日本");   
   Set<String> coun = m.keySet();
   for(Object c : coun)
       System.out.print(c + " ");
   }
}

在这里插入图片描述
例2:TreeMapDemo.java

import java.util.*;
public class TreeMapDemo {
public static void main(String[] args) {
   String[] country={"中国","印度","澳大利亚","德国","古巴",
		        "希腊","日本"};
   String[] capital={"Beijing","New Delhi","Canberra","Berlin",
                                "Havana","Athens","Tokyo"};
   Map<String, String> m = new TreeMap<>();
   for(int i = 0;i<country.length;i++)
        m.put(country[i], capital[i]);
   System.out.println("共有 " + m.size() + " 个国家:");
   System.out.println(m);
   System.out.println(m.get("中国"));   // Beijing
   m.remove("日本");   
   Set<String> coun = m.keySet();
   for(Object c : coun)
       System.out.print(c + " ");
   }
}

在这里插入图片描述

  • 在Map对象的键上迭代
  for(String key: map.keyset())
  system.out.println(key);
  • 在Map对象的值上迭代
 for(Integer value: map.values())
 system.out.println(value);

Collections类

  • java.util.Collections类是工具类,这个类提供了若干static方法实现集合对象的操作。这些操作大多针对List操作。主要包括下面几个方面:

排序 sort()
查找 binarySearch()
重排 shuffle()
求极值以及其他操作。 max(), min(), reverse()等。

Collections类 — 排序

public static<T> void sort(List<T> list)

功能:按照元素的自然顺序进行排序

public static<T> void sort(List<T> list,
         Comparator<? Super T> c)

功能:根据指定的比较器进行排序

实战演练

例:ListSortDemo.java

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class ListSortDemo {
public static void main(String[] args) {
List<String> names = Arrays.asList("peter","anna","mike","Lily");
Collections.sort(names);
System.out.println(names);
Collections.sort(names, (a,b)->b.compareTo(a));
System.out.println(names);
}
}

在这里插入图片描述

Collections类 — 查找

public static<T> int binarySearch(List<T> list, T key)

功能:在按照自然顺序排序后的List中查找key的位置

public static<T> int binarySearch(List<T> list, T key,
         Comparator<? super T>  c)

功能:根据指定的比较器对List排序后,查找key的位置
在这里插入图片描述

实战演练

例:ListSearchDemo.java

import java.util.*;

public class ListSearchDemo{
public static void main(String[] args) {
List<Integer> list = Arrays.asList(5,3,1,7);
Collections.sort(list);   //先排序再查找
Integer key = 4;
int pos = Collections.binarySearch(list, key);  //-3
if(pos < 0) {
List<Integer> nList = new ArrayList<>(list);
nList.add(-pos-1,key);
System.out.println(nList);
      }
   }
}

在这里插入图片描述

Collections类 — 打乱元素次序

public static void shuffle(List<T> list)

功能:使用默认的随机数打乱List中元素的次序

public static void shuffle (List<T> list, Random rnd) 

功能:使用指定的Random对象打乱List中元素的次序

实战演练

例:ListShuffleDemo.java

import java.util.*;
public class ListShuffleDemo {
public static void main(String[] args) {
Integer[] num = {1,3,5,6,4,2,7,9,8,10};
List<Integer> list = Arrays.asList(num);
System.out.println(list);
Collections.shuffle(list);
System.out.println(list); //每次运行输出的结果不同
   }
}

在这里插入图片描述

Collections类 — 求极值

public static<T> T max(Collection<? extends T> coll)

功能:返回给定集合根据其元素自然排序后的最大元素

public static<T> T max(Collection<? extends T> coll, Comparator<? super T> comp)

功能:返回给定集合根据指定的比较器排序后的最大元素

public static<T> T min(Collection<? extends T> coll)

功能:返回给定集合根据其元素自然排序后的最小元素

public static<T> T min(Collection<? extends T> coll, Comparator<? super T> comp)

功能:返回给定集合根据指定的比较器排序后的最大元素

实战演练

例:ListExtremeDemo.java

import java.util.*;

public class ListExtremeDemo {
public static void main(String[] args) {
List<String> list = Arrays.asList("dog","cat","tiger");
System.out.println(Collections.max(list));
System.out.println(Collections.max(list, (String a,String b)->b.compareTo(a)));
System.out.println(Collections.min(list));
System.out.println(Collections.min(list, (String a,String b)->b.compareTo(a)));
    }
}

在这里插入图片描述

Collections类 — 其他常用方法

public static void reverse(List<?> list)

功能:反转指定列表中元素的顺序。

public static <T> void fill(List<? super T> list, T obj)

功能:用指定的值obj替换指定列表的所有元素。

public static <T> void copy(List<? super T> dest, List<? extends T> src)

功能:将src中的元素复制到dest列表中。要求:dest列表长度≥src列表长度。

public static void swap(List<?> list, int i, int j)

功能:在指定的列表中的指定位置上交换元素。
博主用心写,读者点关注,互动传真情,知识不迷路。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于arcpro3.0.2的北斗网格生成简介

基于arcpro3.0.2的北斗网格生成简介 采用2000坐标系、可基于行政区范围 软件可生成第一级到第十级北斗网格经纬跨度 等分 约赤道处距离 第一级 6X4度 60 和A~V 660 km 第二级 30X30分 12X8 …

sql注入第一关和第二关

第一关&#xff1a; 输入?id1 正常 输入?id1 报错 .0 输入?id1-- 正常 判断他是字符型注入 闭合方式是: ?id1 and 12 union select 1,2,group_concat(schema_name) from information_schema.schemata-- 联合注入 爆出库&#xff1a;ctfshow,ctftraining,information_…

nvidia系列教程-AGX-Orin系统刷机及备份

目录 前言 一、准备工作 二、AGX Orin 系统刷机步骤 三、AGX Orin 系统备份 总结 前言 NVIDIA AGX Orin 是一款高性能的嵌入式计算平台&#xff0c;专为边缘计算和 AI 应用而设计。为了确保系统的稳定性和适应不同的应用场景&#xff0c;用户可能需要对 AGX Orin 进行系统刷…

SpringBoot集成阿里百炼大模型 原子的学习日记Day01

文章目录 概要下一章SpringBoot集成阿里百炼大模型&#xff08;多轮对话&#xff09; 原子的学习日记Day02 整体架构流程技术名词解释集成步骤1&#xff0c;选择大模型以及获取自己的api-key&#xff08;前面还有一步开通服务就没有展示啦&#xff01;&#xff09;2&#xff0c…

2024.8.05(glibc的安装及MySQL的安全用户角色权限)

一、glibc的安装 1、清空/etc目录下的my.cnf [rootlocalhost ~]# ls -l /etc/my.cnf -rw-r--r--. 1 root root 570 6月 8 2017 /etc/my.cnf [rootlocalhost ~]# rm -rf /etc/my.cnf 2、删除mariadb [rootlocalhost ~]# yum -y remove mariadb [rootlocalhost ~]# find / -na…

wps 最新 2019 专业版 下载安装教程,解锁全部功能,免费领取

文章目录 前言软件介绍软件下载安装步骤激活步骤小福利&#xff08;安卓APP&#xff09;软件介绍软件下载安装步骤 前言 本篇文章主要针对WPS2019专业版的安装下载进行详细讲解&#xff0c;软件已激活&#xff0c;可放心使用&#xff1b;并且可以进行账号登录&#xff0c;进行…

Router路由的使用

目录 一.Vue Router的使用&#xff1a; 二.使用vue-router来实现登录页面与主页面展示效果&#xff1a; 1.创建 index.js &#xff1a; 2.在 main.js 导入创建的路由器&#xff1a; 3.在App.vue声明标签&#xff1a; 三.子路由的使用&#xff1a; 1.添加五个组件 2.配置…

光线追踪(纹理映射)

最近在跟着ray trace in one week来学习光线追踪&#xff08;很多概念茅塞顿开&#xff09;做到一半想着记录一下&#xff08;比较随心&#xff09;上面是之前的效果。ray trace in one week Texture Coordinates for Spheres&#xff08;球体纹理坐标&#xff09; u, v 纹理…

K-means聚类算法原理解析

度量最小距离 对于 K-means 聚类算法而言&#xff0c;找到质心是一项既核心又重要的任务&#xff0c;找到质心才可以划分出距离质心最近样本点。从数学角度来讲就是让簇内样本点到达各自质心的距离总和最小。通过数学定义&#xff0c;我们将“质心”具象化&#xff0c;既然要使…

使用SpringBoot+Vue3开发项目(2)---- 设计文章分类的相关接口及页面

目录 一.所用技术栈&#xff1a; 二.后端开发&#xff1a; 1.文章分类列表渲染&#xff1a; 2.新增文章分类&#xff1a; 3.编辑文章分类&#xff1a; 4.删除文章分类 &#xff1a; 5.完整三层架构后端代码&#xff1a; &#xff08;1&#xff09;Controller层&#xff1a…

学习大数据DAY31 Python基础语法4和基于Python中的MySQL 编程

目录 Python 库 模块 time&datetime 库 连接 MySQL 操作 结构操作 数据增删改操作 数据查询操作 上机练习 7 面向对象 OOP 封装 继承 三层架构---面向对象思想模型层 数据层 业务逻辑显示层 上机练习 8 三层架构开发豆瓣网 关于我对 AI 写代码的看法&#xf…

大模型技术在企业应用中的实践与优化

【导读】大模型技术更新层出不穷&#xff0c;但对于众多企业及开发者而言&#xff0c;更为关键的命题则是如何进行应用落地&#xff0c;实现真正的智能化转型。本文系统且深入地探讨了大模型在企业应用中的关键环节和技术要点。从构建高质量的专属数据集、选择适宜的微调策略&a…

天线增益测试方法之射频器件S参数测试软件

天线增益的精确测量对于优化无线信号传输至关重要。NSAT-1000射频器件S参数测试软件作为针对S参数的测试设备&#xff0c;大幅提高了测试精度和效率。本文将为大家介绍该软件在天线增益测试方面的具体操作流程。 一、准备工作 在测试天线增益之前&#xff0c;需要准备好测试软件…

【启明智显分享】Model3A 7寸TFT触摸彩屏智能电压力锅解决方案

随着智能家居市场的快速发展&#xff0c;电压力锅作为厨房电器的代表之一&#xff0c;正逐步向智能化、高端化转型。为了进一步提升用户体验&#xff0c;增强产品竞争力&#xff0c;我们推出基于Model3A 7寸触摸彩屏电压力锅解决方案。该方案旨在通过Model3A芯片的强大性能与7寸…

24/8/5算法笔记 BGD,SGD,MGD梯度下降

今日对比不同梯度下降的代码 1.BGD大批量梯度下降(一元一次&#xff09; 首先导入库 import numpy as npimport matplotlib.pyplot as plt 随机生成线性回归函数 Xnp.random.rand(100,1)w,bnp.random.randint(1,10,size2)#增加噪声&#xff0c;更像真实数据 #numoy广播机制…

mysql的安装与基本操作

1、centos7 中安装 mysql 8.x&#xff08;1&#xff09;下载安装包 wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar&#xff08;2&#xff09;解压 tar -xf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar&#xff08;3&…

PXE实验-使用kickstart批量自动部署操作系统

实验准备&#xff1a;rhel7.9具备图形界面的虚拟机&#xff0c;虚拟机网络配置可用&#xff0c;VMware 中NAT的DHCP功能关闭&#xff0c;虚拟机中yum源已配置好 1.在虚拟机中安装kickstart并且启动图形制作工具 yum install system-config-kickstart.noarch -y system-config…

【第13章】Spring Cloud之Gateway全局异常处理

文章目录 前言一、异常处理1. 响应实体类2. 异常处理类 二、单元测试1. 无可用路由2. 服务不可用 总结 前言 网关作为我们对外服务的入口起着至关重要的作用&#xff0c;我们必须保证网关服务的稳定性&#xff0c;下面来为网关服务增加异常处理机制。 一、异常处理 1. 响应实…

动态规划.

目录 &#xff08;一&#xff09;递归到动规的一般转化方法 &#xff08;二&#xff09;动规解题的一般思路 1. 将原问题分解为子问题 2. 确定状态 3. 确定一些初始状态&#xff08;边界状态&#xff09;的值 4. 确定状态转移方程 &#xff08;三&#xff09;能用动规解…

小程序 发布流程

1&#xff1a; 点击HbuilderX 菜单栏上的 发行> 小程序-微信&#xff08;适用于uni-app&#xff09; 2: 第二步&#xff1a; 需要再弹出框中填写发布系小程序的名称和AppId 之后&#xff0c; 点击发行按钮。 3&#xff1a;在Hbuilder 的控制台中 查看小程序发布编译的进度。…