Java -【字符串,数组,哈希表】常用操作

2023-09-22 13:52:59

一. 字符串

  1. 创建字符串:
    可以使用双引号或者String类的构造方法创建字符串。
String str1 = "Hello World";
String str2 = new String("Hello World");
  1. 连接字符串:
    可以使用加号或者String类的concat()方法连接字符串。
String str3 = str1 + str2;
String str4 = str1.concat(str2);
  1. 获取字符串长度:
    可以使用length()方法获取字符串的长度。
int len = str1.length();
  1. 获取字符串中的字符:
    可以使用charAt()方法获取字符串中指定位置的字符。
char c = str1.charAt(0);
  1. 截取字符串:
    可以使用substring()方法截取字符串。
String sub = str1.substring(0, 5);
  1. 替换字符串:
    可以使用replace()方法替换字符串中的字符或子串。
String newStr = str1.replace("World", "Java");
  1. 转换字符串大小写:
    可以使用toUpperCase()和toLowerCase()方法将字符串转换为全大写或全小写。
String upper = str1.toUpperCase();
String lower = str1.toLowerCase();
  1. 搜索字符串:
    可以使用indexOf()方法查找字符串中指定字符或子串的位置。
int index = str1.indexOf('o');
int index2 = str1.indexOf("World");
  1. 比较字符串:
    可以使用equals()方法比较字符串是否相等。
boolean isEqual = str1.equals(str2);
  1. 格式化字符串:
    可以使用String.format()方法将数据格式化为字符串。
String name = "小明";
int age = 20;
String info = String.format("姓名:%s,年龄:%d", name, age);

二. 数组 - 列表

  1. 创建数组:
    可以使用初始化语句或new关键字创建数组。
int[] a = {1, 2, 3};
int[] b = new int[3];
  1. 获取数组长度:
    可以使用length属性获取数组长度。
int len = a.length;
  1. 访问数组元素:
    可以使用下标操作符[]访问数组元素。
int element = a[0];
  1. 修改数组元素:
    可以通过下标操作符[]修改数组元素。
a[1] = 4;
  1. 遍历数组:
    可以使用for循环或者foreach语句遍历数组。
for (int i = 0; i < a.length; i++) {
    System.out.println(a[i]);
}

for (int element : a) {
    System.out.println(element);
}
  1. 数组复制:
    可以使用Arrays类的copyOf()方法或System.arraycopy()方法复制数组。
int[] c = Arrays.copyOf(a, 3);
int[] d = new int[3];
System.arraycopy(a, 0, d, 0, 3);
  1. 反转列表:
    可以使用Collections类的reverse()方法对列表进行反转。
Collections.reverse(a);
  1. 数组排序:
    可以使用Arrays类的sort()方法对数组进行排序。
// 正序
Arrays.sort(a);

// 倒序,可以先正序再反转
Collections.reverse(a); 
  1. 数组查找:
    可以使用Arrays类的binarySearch()方法对有序数组进行查找。
String str = Arrays.toString(a);

三. 哈希表HashMap - 字典

  1. 创建哈希表
HashMap<String, Integer> hashMap = new HashMap<>();
  1. 插入元素
hashMap.put("apple", 5);
hashMap.put("banana", 6);
  1. 获取元素
Integer appleValue = hashMap.get("apple"); // 返回5
  1. 删除元素
hashMap.remove("apple");
  1. 获取哈希表大小
int size = hashMap.size();
  1. 判断哈希表是否为空
boolean isEmpty = hashMap.isEmpty();
  1. 判断哈希表是否包含某个键或值
boolean containsKey = hashMap.containsKey("apple");
boolean containsValue = hashMap.containsValue(6);
  1. 清空哈希表
hashMap.clear();
  1. 遍历哈希表
for (String key : hashMap.keySet()) {
    Integer value = hashMap.get(key);
    System.out.println(key + ": " + value);
}
  1. 排序
HashMap<Integer, Integer> hashMap = new HashMap<>();
hashMap.put(3, 30);
hashMap.put(1, 10);
hashMap.put(2, 20);

List<Map.Entry<Integer, Integer>> list = new ArrayList<>(hashMap.entrySet());
Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>() {
    public int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2) {
        return o1.getValue().compareTo(o2.getValue());
    }
});

for (Map.Entry<Integer, Integer> entry : list) {
    System.out.println(entry.getKey() + ": " + entry.getValue());
}

这里我们先将哈希表中的元素转换为一个 List,然后通过 Collections.sort() 方法对 List 进行排序,具体排序方式通过传入 Comparator 实现。最后,遍历排好序的 List 输出结果即可。

以上就是关于Java -【字符串,数组,哈希表】常用操作的基本介绍,希望对你有做帮助!

更多推荐

软件设计模式系列之十二——外观模式

在软件设计中,经常会遇到需要与复杂子系统进行交互的情况。为了简化客户端与子系统之间的交互,提高系统的可维护性和可用性,外观模式应运而生。外观模式(FacadePattern)是一种结构型设计模式,它提供一个统一的界面,用于访问系统中的一组相关接口,从而隐藏了系统的复杂性。在本文中,我们将深入探讨外观模式,包括其定义、举

员工犯错,就应该受惩罚吗?

先说结论,惩罚肯定是不能有的。我们应该指导员工减少犯错的概率。在项目开发过程中,总会遇到项目成员犯错的场景。根据所犯错误是否具有共性特征,我把问题归为二类,不同类型的错误,采取不同的应对措施。第一类:有共性的问题。第二类:没有共性的问题。共性的定义:一个人多次或者多个人都犯过的错误。第一类:有共性的问题。对于有共性的问

vue3 - 使用reactive定义响应式数据进行赋值时,视图没有改变,值已经改变的解决方案

问题:在Vue3.0中我们使用reactive()定义的响应式数据的时候,当是一个数组或对象时,我们直接进行赋值,发现数据已经修改成功,但是页⾯并没有自动渲染成最新的数据;这是为什么呢?就如同官网所说的reactive存在一些局限性:(官方的描述)原因:原因就是reactive函数会返回一个Proxy包装的对象,所以当

网络安全深入学习第六课——热门框架漏洞(RCE— Weblogic反序列化漏洞)

文章目录一、Weblogic介绍二、Weblogic反序列化漏洞历史三、Weblogic框架特征1、404界面2、登录界面四、weblogic常用弱口令账号密码五、Weblogic漏洞介绍六、Weblogic漏洞手工复现1、获取账号密码,这是一个任意文件读取的漏洞1)读取SerializedSystemIni.dat文

面向对象的分析与设计(精品课程)第二章作业

面向对象的分析与设计(精品课程)第二章作业一.单选题(共4题,30.4分)二.多选题(共1题,7.6分)三.填空题(共5题,38分)四.简答题(共3题,24分)一.单选题(共4题,30.4分)(单选题)UML中的事物包括结构事物、分组事物、注释事物和()。A实体事物B边界事物C控制事物D动作事物(单选题)UML中的4种

Linux设备树OF操作函数

OF操作函数我们知道Linux内核使用设备树的形式去描述芯片硬件设备节点的各种属性,设备树的树形结构可以层次化的组织这些节点属性。设备树源码属于脚本格式的文件,Linux内核无法直接使用脚本格式,所以最终使用时需要将设备树源码编译为二进制的“.dtb”格式,最终Uboot将".dtb"格式设备树传递给Linux内核使用

pdf文件可以压缩大小吗?pdf压缩方法分享

在日常生活和工作中,我们经常需要处理大量的PDF文件。有时候,一个PDF文件的大小可能超过了几十MB,甚至无法通过电子邮件发送。那么,如何有效地压缩PDF文件大小呢?本文将为你介绍三个简单易行的方法,帮助你轻松搞定PDF文件压缩大小的问题。首先,我们需要了解PDF文件的相关概念,PDF是一种可移植文档格式,可以跨平台、

Anaconda安装和配置 ---- 详细到家

安装1.打开Anaconda官网,选择对应版本,下载到对应目录即可或者进入:Indexof/anaconda/archive/|清华大学开源软件镜像站|TsinghuaOpenSourceMirror2.双击打开.exe文件,然后点击next;3.点击agree4.点击justme,然后next;5.在ChooseIn

热电偶的工作原理

当有两种不同的导体或半导体A和B组成一个回路,其两端相互连接时,只要两结点处的温度不同,一端温度为T,称为工作端或热端,另一端温度为T0,称为自由端(也称参考端)或冷端,回路中将产生一个电动势,该电动势的方向和大小与导体的材料及两接点的温度有关。这种现象称为“热电效应”,两种导体组成的回路称为“热电偶”,这两种导体称为

ruoyi框架使用自定义用户表登录

背景有的时候我们做框架升级或改造的时候,需要用到原来的部分表,比如只是用ruoyi的框架,然后登录的用户逻辑还是想用自己的表,那么接下来这边文章将介绍修改逻辑。修改教程1、SysLoginController.java大家找到这个login方法,这是controller的入口。/***登录方法**@paramlogin

ElasticSearch进阶:一文全览各种ES查询在Java中的实现

ElasticSearch进阶:一文全览各种ES查询在Java中的实现ElasticSearch进阶:一文全览各种ES查询在Java中的实现es基本语句详解查询语句详解前言ElasticSearch第一篇:ElasticSearch基础:从倒排索引说起,快速认知ES完整项目已上传至:ElasticSearchDemo项

热文推荐