Java基础---常用类大全以及各数据结构的方法大全

这篇具有很好参考价值的文章主要介绍了Java基础---常用类大全以及各数据结构的方法大全。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

一、Math类

二.Scanner类

三、String类、StringBuilder和StringBuffer类

💖String类

💖StringBuilder和StringBuffer

四.Arrays类

五.Random类

六.时间类

七.ArrayList顺序表

八、LinkedList与链表

九.Stack栈和Queue队列

十.PriorityQueue优先级队列,堆


🎁博主介绍:博客名为tq02,已学C语言、JavaSE,目前学MySQL和JavaWeb

🎥学习专栏:  C语言         JavaSE       MySQL基础

🎄博主链接:tq02的博客_CSDN博客-C语言,Java,MySQL领域博主

前言

         本文记录的是各种各样的函数及其方法,以及数据结构----顺序表、链表、栈、队列及其创建和方法。官方查询链接:Java SE 14 & JDK 14(oracle.com)

一、Math类

java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型。

     函数名                                 作用
绝对值 Math.abs( x )                         返回  x 的绝对值
比较大小 Math.max(x,y)                         返回 x和y的较大值
math.min(x,y)                         返回 x和y的较小值
幂运算 Math.pow(x,y)                         返回 x的y次幂
Math.exp( x)                         返回  e的x次幂

Math.expm1(x)

                        返回  e的x次幂  -1
方根函数 Math.sqrt( x )                         返回 x的平方根
Math.cbrt( x)                         返回 x的立方根
Math.hypot(x,y)                      返回 x和y的平方根之和
取整 Math.ceil( x )                       返回 最近的且小于这个数的整数
Math.floor( x)                        返回 最近的且大于这个数的整数
对数函数 Math.log( e )                         返回 e为底的对数
Math.log10( x )                         返回 以10为底的对数 
随机数 Math.random()                         返回 [ 0,1)之间无符号的double值

二.Scanner类

        java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。而这个Scanne对象r需要创建,才可以使用.

                语法: Scanner  对象名 =new Scanner(System.in);

                例如: Scanner  sc =new Scanner(System.in);

方法名 作用
sc.next() 接收字符串
sc.nextLine() 接收字符串
sc.nextInterge() 接收Int类型整数
sc.nextFloat() 接收 float 类型的数据
sc.nextBoolean() 接收 boolean类型的数据

从表格中,可以发现,需要什么数据就使用next+首字母大写的数据类型 ,而next() 与 nextLine() 都是输入字符串,那么区别是什么呢?

next():

  • 1、一定要读取到有效字符后才可以结束输入。
  • 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
  • 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  • next() 不能得到带有空格的字符串。

nextLine():

  • 1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
  • 2、可以获得空白。

三、String类、StringBuilder和StringBuffer类

        String 类代表字符串,而 StringBuilder和StringBuffer是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder(StringBuffer) 对象中的内容是可变的。       

 三者之间的区别:

Java基础---常用类大全以及各数据结构的方法大全,Java,数据结构,java,笔记

  • String类:内容是不可变的
  • StringBuilder和StringBuffer类:内容是可变的
    当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。

💖String类

                                语法: String 对象名=new String();

                                示例:String   str=new  String();

方法 作用
str.charAt( x ) 返回字符串下标为x 的字符
str.length() 返回字符串的长度
转换为数组 str.getBytes() 将当前字符串转换为byte数组

str.tcCharArray()

将当前字符串转换为char数组
str.isEmpty() 判断字符串是否为空,若空为true
判断大小或相等 str.equals(str1) 比较 str和str1 是否相等,相同返回true
str.compareTo( str1 ) 比较两个字符串的大小
分割字符串 str.split( str1) 将字符串分割为String数组,并且str1为分隔符
str.subString( x ) 截取从下标0开始到下标x 的字符串
str.subString( x,y ) 截取从下标x开始到下标y 的字符串
索引 str.indexOf( str1) 返回第一次出现的str1在str中的下标
str.indexOf( str1 ,x) 返回从x下标开始第一次出现的str1在str中的下标值

两个字符串的比较详解:http://t.csdn.cn/ynEL9

💖StringBuilder和StringBuffer

        两者使用,需要创建对象,并且可以构造初始化的字符串和容量大小,如果不设定容量大小则默认为16个字符。二者的常用方法基本一致。

方法 作用
append( str  )  将str字符或者字符串追加在此序列中
capacity() 获取字符串长度
insert( int x,char[ ] arr) 在x下标开始插入字符
delete(int start,int end) 删除下标start到下标end的字符
toString() 转换为String类型的字符串

四.Arrays类

        该类用于操作数组的各种方法(如排序和搜索),不需要创建对象,直接使用类名

方法 作用
Array.sort(数组名) 将数组进行升序操作
Array.equals(数组1,数组2) 判断两个数组是否全等
Array.copyOf(数组1,x) 复制长度为x的数组1
Array.binarySearch(数组1,x) 二分查找,查找数组等于x的下标
Array.toSring(数组1) 将数组转换为字符串

五.Random类

        该类可生成随机数,随机数可为很多数据类型的,使用时,需要创建对象。例如:

Random  random =new  Random();

方法 作用
random.nextInt(x).+y 随机生成一个[ y,x)的整数
random.nextBoolean() 随机生成一个true和false

六.时间类

        时间类大致有6种。

类名称 类名称
java.util.Date(父类) 年月日时分秒
java.sql.Date(子类) 年月日
java.sql.Time(子类) 时分秒
java.sql.Timestamp(子类) 年月日时分秒毫秒
java.util.Calendar(日历类) 年月日时分秒毫秒
public class JavaDateTest {
    public static void main(String[] args) {
        java.util.Date date = new java.util.Date();
        java.sql.Date sqlDate = new java.sql.Date(date.getTime());
        java.sql.Time sqlTime = new java.sql.Time(date.getTime());
        java.sql.Timestamp sqlTimestamp = new java.sql.Timestamp(date.getTime());
        System.out.println("【java.util.Date】: " + date); // 【java.util.Date】: Fri Feb 11 13:12:39 CST 2022
        System.out.println("【java.sql.Date】: " + sqlDate); // 【java.sql.Date】: 2022-02-11
        System.out.println("【java.sql.Time】: " + sqlTime); // 【java.sql.Time】: 13:12:39
        System.out.println("【java.sql.Timestamp】: " + sqlTimestamp); // 【java.sql.Timestamp】: 2022-02-11 13:12:39.248

        java.util.Calendar calendar = java.util.Calendar.getInstance();
        System.out.println("【java.util.Calendar】: " + calendar.getTime()); // 【java.util.Calendar】: Fri Feb 11 13:12:39 CST 2022
        
        System.out.println(new java.util.Date(0L)); // Thu Jan 01 08:00:00 CST 1970
        System.out.println(new java.sql.Date(0L)); // 1970-01-01
        System.out.println(new java.sql.Time(0L)); // 08:00:00
        System.out.println(new java.sql.Timestamp(0L)); // 1970-01-01 08:00:00.0
    }
}

在代码中,getTime()是获取当前时间,

日历类的创建需要使用getInstance(),作用是:使用默认时区和区域设置获取日历。


七.ArrayList顺序表

        ArrayList底层是一段连续的空间,并且可以动态扩容,是一个动态类型的顺序表

创建语法:List<类型包装类>  变量名= new ArrayList<>();

常见方法:

方法 解释
boolean add(E e) 尾插 e
void add(int index, E e) 将e插入到 index 位置
E remove(int index) 删除 index 位置元素
boolean remove(Object o) 删除遇到的第一个 o
E get(int index) 获取下标 index 位置元素
void clear() 清空顺序表
E set(int index, E element) 将下标 index 位置元素设置为 element
int indexOf(Object o) 返回第一个。所在下标
int lastIndexOf(Object o) 返回最后一个o的下标

其中E代表数据类型


八、LinkedList与链表

        LinkedList的底层是双向链表结构,LinkedList实现了List接口

创建语法: List<包装类> 变量名 = new LinkedList<>();

常用方法:

方法 解释
boolean add(E e)

尾插e

add(int idex,E element)

将e插入到index下标位置

E remove(int index) 删除 index 位置元素
boolean remove(Object o) 删除遇到的第一个 o
E set(int index, E element) 将下标 index 位置元素设置为 element
E get(int index) 获取下标 index 位置元素
void clear() 清空

注:E 是数据类型。

九.Stack栈和Queue队列

        ,先进先出的,只允许在固定的一端进行插入和删除元素操作

方法 解释
Stack() 构造一个空的栈
push(E e) 将e入栈,并返回e
pop() 将栈顶元素出栈返回
peek() 获取栈顶元素
size() 获取栈中有效个数
empty() 判断是否为空

        队列,Queue是个接口,在实例化时必须实例化LinkedList的对象,因为LinkedList实现了Queue接口
创建语法:Queue<包装类>  变量名 = new LinkedList<>();

方法 解释
offer(E e) 入队
poll() 出队
peek() 获取队头元素
size() 队列中有效元素个数
isEmpty() 是否为空

十.PriorityQueue优先级队列,堆

PriorityQueue使用条件:

  • 使用时必须导入PriorityQueue所在的包,即 import java.util.PriorityQueue;
  • PriorityQueue中放置的元素必须要能够比较大小,不能插入无法比较大小的对象,否则会抛出
    ClassCastException异常
  • 不能插入null对象,否则会抛出NullPointerException
  • 底层默认容量为11,没有容量限制,可以插入任意多个元素,其内部可以自动扩容
  • PriorityQueue底层使用了堆数据结构,默认情况下是小堆
     

创建语法:PriorityQueue<包装类>   变量名 = new PriorityQueue<>();

函数名 功能介绍
offer(E e) 插入元素e,会自动扩容
peek() 获取优先级最高的元素,若空,返回null
poll() 移除优先级最高元素,若空,返回null
size() 获取有效元数个数
clear() 清空
isEmpty() 检测是否为空,空,返回treu

                以上便是Java的常用类和各数据结构的构造类及其方法

                                                                                        ----------------懒惰的tq02文章来源地址https://www.toymoban.com/news/detail-565746.html

到了这里,关于Java基础---常用类大全以及各数据结构的方法大全的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据结构--》从线性表说起,掌握常用基础算法

    目录 初识线性表 线性表的基本操作 顺序表的定义 顺序表的基本操作 单链表的定义 单链表的基本操作  双链表的介绍 循环链表的介绍 静态链表的介绍 线性表是具有 相同 数据类型的 n (n0) 个数据元素的 有限序列 ,其中n为 表长 ,当n=0时线性表是一个 空表 。若用L命名线性

    2024年02月09日
    浏览(36)
  • 常用的数据结构 JAVA

    ArrayList:动态数组 1、可以嵌套使用 2、add(x)添加元素x,remove(index)删除某个位置的元素 3、注意list是指向性的,在不确定被指向元素是否会发生变动,最好复制一下被指向元素 1、Java中List类应该主要是一些方法, 方法的实现应该是在ArrayList类中实现 类似下方的A类B类代码:

    2024年02月15日
    浏览(22)
  • 树的引进以及二叉树的基础讲解——【数据结构】

                                     W...Y的主页 😊 代码仓库分享  💕 当我们学习完前面的数据结构,难度也就会上升,但是这个也是非常重要的数据结构。今天我们来学习一种新的数据类型——树。 目录 树的概念以及结构 树的概念 树的相关概念 树的表示

    2024年02月07日
    浏览(29)
  • 【数据结构】—— 队列基础知识以及数组模拟队列的分析、演示及优化

    ❤️一名热爱Java的大一学生,希望与各位大佬共同学习进步❤️ 🧑个人主页:@周小末天天开心 各位大佬的点赞👍 收藏⭐ 关注✅,是本人学习的最大动力 感谢! 📕该篇文章收录专栏—数据结构 目录 什么是队列? 数组模拟队列 分析 存入队列的步骤 使用数组模拟队列—

    2024年01月19日
    浏览(48)
  • Java基础--数据结构

    Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类: 枚举(Enumeration)、位集合(BitSet)、向量(Vector)、栈(Stack)、字典(Dictionary)、哈希表(Hashtable)、属性(Properties) 以上这些类是传统遗留的,在Java2中引入了一种新的框架-集合框架

    2023年04月14日
    浏览(27)
  • 本文通过实例介绍了Redis的基础知识、数据类型、数据结构以及典型应用场景 值得一看!

    作者:禅与计算机程序设计艺术 2017年,Redis是基于MIT许可发布的一个开源的高性能键值数据库,其开发语言为C语言。它提供了多种数据类型(strings、hashes、lists、sets、sorted sets等),分布式支持(可横向扩展),内存存储,持久化功能,事务处理功能等。作为一种高性能的

    2024年02月06日
    浏览(50)
  • Java基础数据结构之排序

    假定在待排序的记录序列中,存在多个具有相同的的记录,若经过排序,这些记录的相对次序保持 不变,即在原序列中, r[i]=r[j] ,且 r[i] 在 r[j] 之前,而在排序后的序列中, r[i] 仍在 r[j] 之前,则称这种排序算法是稳 定的;否则称为不稳定的。 内部排序 :数据元素

    2024年01月25日
    浏览(34)
  • 蓝桥杯基础数据结构(java版)

    数据结构=数据+结构。所以数据结构是一个抽象的概念。其目的是为了更好的组织数据方便数据存储。下面我们来看一些简单的数据储存方式 这里先介绍java的输入和输出。简单引入,不过多详细介绍,等我单一写一篇的时候这里会挂上链接 简单的就是Scanner,使用方法如下:

    2024年01月16日
    浏览(33)
  • Java面试基础|数据结构 -实时更新

    1.HashMap和ConcurrentHashMap介绍 核心是一个Node数组, 数据结构与hashMap相似 使用CAS操作来实现无锁的更新,提高了并发性。当更新节点时,它会使用CAS来替换节点的值或链接,如果CAS失败,表明有其他线程也在进行修改,当前线程可以重试或锁定节点 对于复杂的结构修改操作

    2024年01月17日
    浏览(37)
  • [JAVA数据结构] 认识 Iterable、Collection、List 的常见方法签名以及含义

            (一)Iterable                 1. 介绍                 2. 常见方法         (二)Collection                 1. 介绍                  2. 常见方法         (三) List                  1. 介绍                 2. 常见方法

    2024年02月02日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包