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

Java 01简单集合

之前的笔记分享一下

StringBuilder

1.程序运行时间

long time=System.currentTimeMills();
获得1970年1月1日000时到现在的毫秒值
这样就可以知道程序的时间了

2.简介

1.一个可变的字符序列
2.是字符串缓冲区,其理解为容器,可以储存任意数据类型,但只要进入这个容器,就会成为字符串

3.使用

StringBuilder sb=new StringBuilder();
sb.append("字符串");在后面添加字符串

4.构造

1.StringBuilder():初始容量为16个字符,但是在append的时候会进行自动扩容
2:StringBuilder(String str);
也就是静态钩构造和动态构造,创建字符串缓冲区

5.成员方法

append
append(任意类型)在后面进行添加数据,返回对象自己

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

true 因为返回的对象自己,也就是他们指向的地址是相同的
所以注意一点,由于返回的是对象自己,所以一点,sb2进行改变的时候,sb也会进行改变
下面为链式编程

在这里插入图片描述

只有返回的是对象的时候才能进行链式编程

在这里插入图片描述

reverse
反转
s.reserve();
返回的也是对象
length()
返回长度int
toString
将缓冲区的内容,以String字符串类型返回
也就是当String有StringBuilder里面的没有的函数的时候,就将他转化成String
spilt
String s;
String[] sArr=s.spilt("哈");
返回的是s以哈为界限分割出来的String

6.使用

先说一下
String a="1";
StringBuilder b="1";
两个是不相等的,因为类型不一样
可以这样写
a.equals(b.toString());
这样就是相等的了

7.内存

怎么提高的效率
当创建一个string的时候,会先检测栈内存中有没有,没有的话就去创建,指向堆内存中的当前字符串
当使用加号的时候,会在堆内存中自动创建一个StringBuilder,然后调用他的append方法,此时的String方法指向的堆内存中的String

StringBuffer

简介

StringButter是差不多的
StringBuilder是多个线程是不安全的
但是StringBuffer是线程安全的;
但是需要的一点是,效率StringBuilder是效率较高的也就是安全的东西他的效率低,不安全的效率高

集合ArrayList

1.简介

为啥要用
因为数组是固定长度的,但是集合可以自由扩容,也就是可变的

2.ArrayList(类)

原理(为什么可以变)
1建立的时候会创建一个长度大小为10的空数组
2.装不下的时候,扩容原数组1.5倍大小的新数组
3.将原数组copy新的数组当中
4.将新元素放进去

3.构造

ArrayList list=new Arraylist();
list.add("q");
System.out.println(list);
//返回的是[q];
//封装的很完美,不需要关系数组的大小

在这里插入图片描述

因为可以存入任意数据类型,所以啥都能存入进来
相当于double int 或者obiect都是可以的

4.限制

只添加一个数据类型
ArrayList<String> arr=new ArrayList<String>();
JDK7之后可以不用加右边的尖括号了
<>也就是泛型****
使用泛型可以对集合中的数据进行限制
细节:泛型不允许存入基础数据类型
解决:使用对应的包装类
int Integer**
char Character**
其他的都是首字母大写
byte  Byte
short	Short
long	Long
float	Float
double	Double
boolean Boolean

隐式转化也不可以***

5.增删改查

add
1.添加在末尾
返回值为boolean
2add(int index,E e);
在指定位置添加对应的元素,会将当前的踢到后面
remove
remove(int index);
根据索引进行删除,返回被删除的元素
如果是remove("元素");
返回值变成了boolean
set
arr.set(index ,元素);
将指定位置修改为需要的元素;
返回值为被覆盖掉的元素
get
get(index);
根据索引返回对应位置的元素,返回的是list类型
大小
size
返回的是长度

6.使用

创建一个对象的时候,直接print的话,返回的是地址的值

7.next和nextline

next以空格分开,
nextLine是吸入一行

8.内存

在这里插入图片描述

简述:1.建立集合,因为有new 在堆空间内建立对象,返回指针;
2.调用方法,传入一个遍历arraylist,所以会在栈内存中产生一个对象,
3.使用new,在堆内存中建立对象,返回地址,就实现了对象的添加

9技巧

在这里插入图片描述

尽量使用常量调用方法

10.删除中的问题

arr.add("1");
arr.add("1");
for(int i=0;i<arr.size();i++){if("1".equals(arr.get(i))){arr.remove(i);}
}
会发现还有一个1,因为相当于i向后了一步解决:i--删除完毕之后*也可以倒着删除就不需要--

11.技巧

int x=f(da);
点击f加就会自动产生方法啦alt+回车

12.一些扩展函数

System.exit();
退出程序

相关文章:

  • HarmonyOS5云服务技术分享--ArkTS开发函数
  • 【深入理解索引扩展—1】提升智能检索系统召回质量的3大利器
  • 软考软件测评师——系统安全设计(防火墙技术)
  • SpringBoot(三)--- 数据库基础
  • vitepress项目添加百度统计或者google统计方式
  • 星闪开发之buttondemo烧录后无效果思路
  • 初识Linux 进程:进程创建、终止与进程地址空间
  • 软考软件评测师——基于风险的测试技术
  • protobuf原理和使用
  • 网络基础知识
  • vue2实现【瀑布流布局】
  • 推一帧,通一气:跨平台RTMP推流的内家功夫
  • Mysql面经
  • SpringBoot3+Vue3(1)-后端 请求头校验,jwt退出登录,mybaits实现数据库用户校验
  • SAGE:基于SAM进行二级蒸馏的多模态图像融合新方法,CVPR2025
  • 如何处理 collation 导致的索引失效 | OceanBase SQL调优实践
  • 信奥赛-刷题笔记-栈篇-T3-P4387验证栈序列0520
  • 13 分钟讲解所有知名 Python 库/模块
  • Linux探秘:驾驭开源,解锁高效能——基础指令
  • 数据仓库是什么?常见问题解答
  • 广东“龙舟水”开启:降水少于去年,但仍比常年多两成
  • 神舟二十号航天员乘组将于近日择机实施第一次出舱活动
  • 小满:一庭栀子香
  • 全国治安管理工作视频会召开
  • 港股上市首日大涨,宁德时代“新动力”何在?曾毓群详谈零碳科技布局
  • 香港油麻地旧警署将向游客开放