Java基础Arrays类

简介: Java基础Arrays类

个人推荐:

📢📢📢 前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下 "通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。 点击跳转到教程

在这里插入图片描述

1.Arrays类

在这里插入图片描述

  • Arrays位于java.util包下(Arrays是一个操作数组的工具类)
  • Arrays包含各种操作数组的方法(例如排序和搜索)。该类还包含一个静态工厂,允许将数组视为列表。
  • Arrays类里的方法都是静态方法可以通过Arrays.方法名()直接调用

2.Arrays常用方法

(1) asList(T... a):主要用于遍历

 List<String> list = Arrays.asList("a","b","c");
  • 该方法适用于对象型数据的数组(String、Integer...)
  • 该方法不建议使用于基本数据类型的数组(byte,short,int,long,float,double,boolean)
  • 该方法将数组与List列表链接起来:当更新其一个时,另一个自动更新
  • 不支持add()、remove()、clear()等方法

在这里插入图片描述

运行效果:
在这里插入图片描述

(2) fill()

给定特定值val,使整个数组中或者某下标范围内的元素值为val。

在这里插入图片描述

代码实例:

import java.util.Arrays;
public class ArraysTest04
{
    public static void main(String[] args)
    {
        int[] a = new int[7];
        int[] b = new int[7];
        Arrays.fill(a,3);
        Arrays.fill(b,3,5,6);
        
        for(int i = 0;i<a.length;i++)
        {
            System.out.print(a[i]+",");
        }
        System.out.print("\n");
        for(int i = 0;i<b.length;i++)
        {
            System.out.print(b[i]+",");
        }
        System.out.print("\n");
    }
}

运行效果:
在这里插入图片描述

(3) copyOf() && copyOfRange()

  • copyOf():将原始数组的元素,复制到新的数组中,可以设置复制的长度(即需要被复制的元素个数)。

在这里插入图片描述

  • copyOfRange():将某个范围内的元素复制到新的数组中。

在这里插入图片描述

代码实例:

import java.util.Arrays;
public class ArraysTest03
{
    public static void main(String[] args)
    {
        int[] a = {1,3,5,3,6,7};
        int[] b;
        int[] c;
        int[] d;
        System.out.println("-----------原始数组---------");
        for(int i = 0;i<a.length;i++)
        {
            System.out.print(a[i]+",");
        }
        System.out.print("\n");
        
        b = Arrays.copyOf(a,7);//将a数组的内容复制到b数组中,如果新的数组长度大于原来数组的长度,那么用0来填充
        c = Arrays.copyOf(a,3);
        d = Arrays.copyOfRange(a,2,4);
        System.out.println("-----------复制数组---------");
        for(int i = 0;i<b.length;i++)
        {
            System.out.print(b[i]+",");
        }
        System.out.print("\n");
        
        
        for(int i = 0;i<c.length;i++)
        {
            System.out.print(c[i]+",");
        }
        System.out.print("\n");
        
        for(int i = 0;i<d.length;i++)
        {
            System.out.print(d[i]+",");
        }
        System.out.print("\n");
        
    }
}

运行效果:
在这里插入图片描述

(4) equals()

判断两个数组中的元素是否一一对应相等。

代码实例:

import java.util.Arrays;
public class ArraaysTest05
{
public static void main(String[] args)
{
    int[] a = new int[]{1,2,3};
    int[] b = null;
    int[] c = new int[]{};
    int[] d = new int[]{1,2,3};
    
    System.out.println(Arrays.equals(a,b));
    System.out.println(Arrays.equals(a,c));
    System.out.println(Arrays.equals(a,d));
    System.out.println(Arrays.equals(b,c));
    System.out.println(Arrays.equals(b,d));
    System.out.println(Arrays.equals(c,d));
}
}

运行效果:
在这里插入图片描述

(5) sort()

对数组进行升序排序,排序后 ,数组中存放的是排序后的结果。

在这里插入图片描述
代码实例:

import java.util.Arrays;
public class ArraysTest05
{
public static void main(String[] args)
{
    int[] a ={34,56,23,565,23,-56};
    
    Arrays.sort(a);
    
    for(int i = 0;i<a.length;i++)
    {
        System.out.print(a[i]+",");
    }
    System.out.print("\n");
}
}

运行效果:
在这里插入图片描述

(6) binarySearch()

对排序好的数组,采用二分查找的方式查找某个元素,可以在整个数组中查找,也可以在某个范围内查找。

在这里插入图片描述

代码实例:

import java.util.Arrays;

public class ArraysTest02
{
    public static void main(String[] args)
    {
        int[] a = {1,45,78,23,123,98,67,12,90,56};
        
        System.out.println("-----------原始数组---------");
        for(int i = 0;i<a.length;i++)
        {
            System.out.print(a[i]+",");
        }
        System.out.print("\n");
        
        
        Arrays.sort(a);
        System.out.println("-----------排序后数组---------");
        for(int i = 0;i<a.length;i++)
        {
            System.out.print(a[i]+",");
        }
        System.out.print("\n");
        System.out.print("在整个数组中寻找:");
        System.out.println(Arrays.binarySearch(a,78));
        System.out.print("在局部范围内寻找:");
        System.out.println(Arrays.binarySearch(a,4,7,1));
        
    }
}

运行效果:
在这里插入图片描述

本篇博客主要对Java Arrays工具类用法详解进行学习!

相关文章
|
1天前
|
安全 Java 开发者
Java一分钟之-文件与目录操作:Path与Files类
【5月更文挑战第13天】Java 7 引入`java.nio.file`包,`Path`和`Files`类提供文件和目录操作。`Path`表示路径,不可变。`Files`包含静态方法,支持创建、删除、读写文件和目录。常见问题包括:忽略异常处理、路径解析错误和权限问题。在使用时,注意异常处理、正确格式化路径和考虑权限,以保证代码稳定和安全。结合具体需求,这些方法将使文件操作更高效。
11 2
|
1天前
|
安全 Java 开发者
Java一分钟之-Optional类:优雅处理null值
【5月更文挑战第13天】Java 8的`Optional`类旨在减少`NullPointerException`,提供优雅的空值处理。本文介绍`Optional`的基本用法、创建、常见操作,以及如何避免错误,如直接调用`get()`、误用`if (optional != null)`检查和过度使用`Optional`。正确使用`Optional`能提高代码可读性和健壮性,建议结合实际场景灵活应用。
19 3
|
1天前
|
安全 Java 数据安全/隐私保护
Java一分钟之-Java反射机制:动态操作类与对象
【5月更文挑战第12天】本文介绍了Java反射机制的基本用法,包括获取Class对象、创建对象、访问字段和调用方法。同时,讨论了常见的问题和易错点,如忽略访问权限检查、未捕获异常以及性能损耗,并提供了相应的避免策略。理解反射的工作原理和合理使用有助于提升代码灵活性,但需注意其带来的安全风险和性能影响。
23 4
|
1天前
|
安全 Java 调度
Java一分钟:多线程编程初步:Thread类与Runnable接口
【5月更文挑战第11天】本文介绍了Java中创建线程的两种方式:继承Thread类和实现Runnable接口,并讨论了多线程编程中的常见问题,如资源浪费、线程安全、死锁和优先级问题,提出了解决策略。示例展示了线程通信的生产者-消费者模型,强调理解和掌握线程操作对编写高效并发程序的重要性。
45 3
|
1天前
|
Java
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
|
1天前
|
存储 安全 Java
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
|
1天前
|
Java 编译器 开发者
Java一分钟之-继承:复用与扩展类的特性
【5月更文挑战第9天】本文探讨了Java中的继承机制,通过实例展示了如何使用`extends`创建子类继承父类的属性和方法。文章列举了常见问题和易错点,如构造器调用、方法覆盖、访问权限和类型转换,并提供了解决方案。建议深入理解继承原理,谨慎设计类结构,利用抽象类和接口以提高代码复用和扩展性。正确应用继承能构建更清晰、灵活的代码结构,提升面向对象设计能力。
15 0
|
1天前
|
Java
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
22 0
|
1天前
|
Java API 调度
【Java多线程】Thread类的基本用法
【Java多线程】Thread类的基本用法
10 0
|
1天前
|
SQL Java 数据库连接
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
11 0