当前位置: 首页 > news >正文

Java集合和字符串

问题引用

为什么要使用集合?

集合和数组的对比:

长度:数组长度是固定的;集合的长度是可变的,如果删除一个长度自动减一,增加一个元素长度自动加一。

存储类型:数组可以存基本数据类型也可以存引用数据类型;集合只能存引用数据类型,如果需要存入基本数据类型就要把他们变成对应的包装类。

JAVA规定了很多种不同的集合,每种集合都有各自的特点,现在我们来学习最常见的也是最常用的ArrayList集合。

ArrayList集合

举例:

 

因为ArrayList这个类在底层做了一些处理,所以输出的是[],而不是地址值。

ArrayList成员方法

增:boolean add(E e)     添加元素,返回值表示是否添加成功

删:boolean remove(E e)     删除指定元素,返回值表示是否删除成功

       E remove(int index)    删除指定索引的元素,返回被删除的元素

改:E set(int index,E e)      修改指定索引的元素,返回原来的元素

查:E get(int index)     获取指定索引的元素

int size()    集合的长度

代码举例:

 集合的遍历:

for(int i = 0;i < list.size();i++){System.out.println(list.get(i));
}

注意:这个输出的时候没有[  ,  ,...,]这样的格式,只输出这个索引对应的元素。(没看懂的话,可以再看一遍上边的代码)

基本数据类型所对应的包装类:

byte------------------>Byte

short------------------>Short

char------------------>Character

int--------------------->Integer

long------------------->Long

float-------------------->Float

double------------------>Double

boolean----------------->Boolean 

如果要添加整数进行遍历,就把ArrayList<包装类/引用数据类型> 变量名 = new ArrayList()中的<>里面的内容改成如上左边的就可以。

 添加自定义对象,用集合来遍历:

定义对象Firend这里我就不演示了,上一篇文章中讲了。

 如果在一个方法中要返回多个类型:(如图)

字符串

通过构造方法创建一个新的对象来接收,打印时打印的是内容而不是地址值。

String

 java.lang.String代表字符串(java.lang是java的核心包,所以不需要导入这个包),Java程序中的所有字符串文字都为此类的对象。

字符串的内容不能发生改变,它的对象在创建后不能被更改。(两个字符串拼接会产生一个新的字符串,对原来的字符串没有任何影响)

创建String对象的方式:

1、直接赋值(串池内开辟空间,若两个字符串一样则复用):例:String name = “abc”;

2、构造方法(堆内new一个新空间):1)public String()创建空白字符串,不含任何内容。(空格也不含)

                        2)public String(String original)根据传入的字符串创建字符串对象。

                        3)public String(char[] chs)根据字符数组,创建字符串对象。

                        4)public String(byte[] chs)根据字节数组(在ASCLL表里查数字对应字母),创建字符串对象。

一般常用第一种。

 字符串的比较:

==号比的是什么?

基本数据类型比较的是具体的数据值;引用数据类型比较的是地址值。

boolean equals(要比较的字符串)完全一样结果为true。

boolean equalsgnoreCase(要比较的字符串)忽略大小写的比较。

遍历字符串:

public char charAt(int index):根据索引返回字符。

public int length():返回此字符串的长度。

数组长度:数组名.length。

字符串长度:字符串对象.length()。

例题:

补充方法:

String substring(int beginIndex,int endIndex)截取(包左不包右,截取后对原来字符串没有任何影响)

String substring(int beginIndex)截取到末尾。

String replace(旧值,新值):替换(截取后对原来字符串没有任何影响)

StringBuilder

StringBuilder可以看成一个容器,创建之后里面的内容是可变的。(提高字符串的操作效率)

 构造方法:public StringBuilder():创建一个空白可变的字符串对象,不含任何内容。

                   public StringBuilder(String str):根据字符串内容,来创建可变字符串对象。

常用的成员方法:public StringBuilder append(任意类型):添加数据,并返回对象本身。

                             public StringBuilder reverse():反转容器中的内容。

                             public int length():返回长度。

                 public String toString():通过toString()就可以实现把StringBuilder转换为String。

 

容量分析:

原本的容量为16,当StringBuilder装入的字符超过这个容量时,容量又会变为16*2+2=34,当又超过34时就以实际长度为准。capacity()方法是获取容量;length()是获取长度。

StringJonier

StringJoiner跟StringBuilder一样,也可以看成是一个容器,创建之后里面的内容是可变的。

构造方法:public StringJoiner(间隔符号):创建StringJoiner对象,指定拼接时的间隔符号。

                  public StringJoiner(间隔符号,开始符号,结束符号):创建StringJoiner对象,指定拼接时的间隔符号,开始符号,结束符号。

成员方法:public StringJoiner add(添加的内容):添加数据,并返回对象本身。

                  public int length():返回长度。

                  public String toString():返回一个字符串。

补充

字符转成数字:char c = charAt(i)

int num = c - '0'或int num = c - 48;48是0的ASCLL值

获取一个字符串的第一位:1)str.charAt(0);2)str.startwith("开始的一个字符"):如果str字符串开始的第一个字符等于括号里的字符则返回true,否则返回false。

http://www.dtcms.com/a/279876.html

相关文章:

  • JVM-1
  • 现场设备无法向视频汇聚EasyCVR视频融合平台推流的原因排查与解决过程
  • 常用的OTP语音芯片有哪些?
  • Gstreamer之”pad-added“事件
  • cron监控进程逻辑
  • C#中发布订阅的阻塞非阻塞
  • 微美全息借区块链与DRL算法打造资源管理协同架构,达成边缘计算与区块链动态适配
  • Function-——函数中文翻译渊源及历史背景
  • 学习笔记(35):了解原理:从密度到了解概率密度
  • iperf3 网络带宽测试工具学习
  • 国内隧道IP代理技术解析:原理、优势与实战应用
  • 网络地址转换(NAT)与单臂路由实验
  • 2.逻辑回归、Softmax回归
  • 智能节气装置
  • 记录网络切换时同步操作
  • TypeScript 配置全解析:tsconfig.json、tsconfig.app.json 与 tsconfig.node.json 的深度指南
  • JJ20 Final Lap演唱会纪念票根生成工具
  • 信息收集的基本流程
  • 大模型呼叫系统选型指南
  • 【Linux】Linux 操作系统 - 28 , 进程间通信(四) -- IPC 资源的管理方式_信号量_临界区等基本概念介绍
  • 递推预处理floor(log_2{n})
  • Class9简洁实现
  • HashMap的put过程以及hashMap的简单介绍
  • kt 中商品的金额字段使用double 还是 bigdecimal
  • 动态规划题解——最长递增子序列【LeetCode】记忆化搜索方法
  • 【每日刷题】杨辉三角
  • Git根据标签Tag强制回滚版本
  • 面试常问:如何在一个长度为n的无序数据快速获取前k个数值
  • 网络传输过程
  • GaussDB between的用法