iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >新手了解java 数组基础知识
  • 906
分享到

新手了解java 数组基础知识

2024-04-02 19:04:59 906人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录1、数组的定义2、array 遍历3、List和array 之间的转换1、数组转list2、list 转数组3、Arrays工具类4、可能遇到的问题总结1、数组的定义

1、数组的定义

  • 先声明后使用

数据类型 [] 数组名称 = new 数据类型[长度];String[] arr3 = new String[5];

数据类型 数组名称[] = new 数据类型[长度];String arr[] = new String[5];

  • 直接初始化

String[] arrs = {"1","2","3"};

  • 声明并初始化

String[] sarr = new String[]{"a","b"};

2、array 遍历

  • 流遍历

将数组封装成流进行操作,所有的操作都和列表一样操作


public static void main(String[] args) {
      String[] arrs = {"1","2","3"};
      Arrays.stream(arrs).forEach(System.out::println);
  }
  • 普通遍历

普通遍历有三种方式,建议使用第一种,

如果需要使用索引可以使用第三种

如果想要倒序,则使用第三种

图片

3、List和array 之间的转换

list 和 array 之间大有联系,list 的实现形式有链表和 数组,我们开发中经常需要对两者进行转换

1、数组转list

  • 使用循环 转换为list
  • 借助工具方法

代码展示:


   public static void main(String[] args) {
       String[]  arrs = {"1","2","3"};
       // 循环转换
       List<String> list1 = new ArrayList<>();
       for (String arr : arrs) {
           list1.add(arr);
      }
       // 借助数组工具类
       List<String> list2 = Arrays.asList(arrs);
       // 借助集合工具类
       List<String> list3 = new ArrayList<>();
       Collections.addAll(list2,arrs);
  }

2、list 转数组

  • list 内置方法 toArray
  • 直接循环

代码展示


   public static void main(String[] args) {
       List<String> list = Arrays.asList("1","2");
       String[] arr1 = new String[list.size()];
       // 循环遍历赋值
       for (int i = 0; i < list.size(); i++) {
           arr1[i] = list.get(i);
      }
       // 调用list 方法
       String[] arr2 = (String[]) list.toArray();
  }

3、Arrays工具类

  • toString()

打印数组的方法,如果不调用这个方法打印的是内存地址

图片

  • stream()

将数组转换为流操作,具体就不演示了

  • sort()

对数组进行排序,注意这个排序是数组内部排序,没有返回值,原数组会被改变

  • setAll

对数组内的元素进行操作,需要提供一个function,具有不同的数据类型


String[] arrs = {"1","2","3"};
      Arrays.setAll(arrs, e->e+"0");
      for (String arr : arrs) {
          System.out.println(arr);
      }
  • binarySearch

看名字都知道这是二分查找,具体的算法也很简单,如果你还不会,可以补一下了,如果你懂二分查找应该知道,在调用这个方法之前要保证数组是有序的!

  • copyOf

名字也很直白,拷贝数组,扩展就是增加一些长度限制,或者填充数据的设置

  • equals

看起来不需要解释

  • deepEquals

判断两个数组的深度是否相同,也就是数组嵌套了几层

    
    public static void main(String[] args) {
          String[] arrs = {"1","2","3"};
          String[][] arr2 = {{"1"},{"2"},{"3"}};
          boolean b = Arrays.deepEquals(arr2, arrs);
          System.out.println(b);
      }
  • fill

认识英语的话基本上都懂,就是如何填充数组,当然你也可以自己进行循环操作

  • hashCode

计算数组的hash code

  • parallelPrefix

这个有些意思的,并行的累计操作数组内的元素,看个例子你就知道了


public static void main(String[] args) {
       String[]  sarr = new String[]{"a","b","c"};
       Arrays.parallelPrefix(sarr, (sum,e1)->e1 + sum);
       System.out.println(Arrays.toString(sarr));
  }

看下执行结果:

图片

4、可能遇到的问题

1、索引越界问题,数组的下标索引是从0 开始的,最后一个索引是length -1 ,注意不要越界

2、下面的方式创建的列表不支持添加

因为Arrays中的ArrayList并没有实现remove()和add()方法,所以抛出了异常。所以说 Arrays.asList 返回的 List 是一个不可变长度的列表,此列表不再具备原 List 的很多特性,因此慎用 Arrays.asList 方法。


String[] arr = {"1", "2", "3"};
       List list = Arrays.asList(arr);
       arr[1] = "4";
       try {
           list.add("5");
      } catch (Exception ex) {
           ex.printStackTrace();
      }

3、一个小技巧,将数组绕成圈进行遍历

使用对数组长度取余即可


   public static void main(String[] args) {
       String[] arr = {"a", "b", "c"};
       int i = 0;
       int j = 0;
       int length = arr.length;
       while (j++ <10){
           System.out.println(arr[i%length]);
           i++;
      }
  }

可以看到多次遍历了数组

图片

总结

本篇文章就到这里了,希望能给你带来帮助,也希望你能够多多关注编程网的更多内容!

--结束END--

本文标题: 新手了解java 数组基础知识

本文链接: https://www.lsjlt.com/news/129849.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 新手了解java 数组基础知识
    目录1、数组的定义2、array 遍历3、List和array 之间的转换1、数组转list2、list 转数组3、Arrays工具类4、可能遇到的问题总结1、数组的定义 ...
    99+
    2022-11-12
  • 新手了解java基础知识(一)
    目录1.java基础1.1Java历史1.2Java特点1.2.1 简单性1.2.2 面向对象1.2.3 分布式(微服务)1.2.4 健壮性1.2.5 安全性1.2.6 体系结构中立...
    99+
    2022-11-12
  • 新手了解java基础知识(二)
    目录算数运算符例子关系运算符例子逻辑运算符例子赋值运算符Java运算符优先级总结算数运算符 算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。 ...
    99+
    2022-11-12
  • 新手了解java IO基础知识
    目录一、File类1、简介2、创建方式3、常用方法二、IO概念1.什么是输入2.什么输出(Output)三、流的分类1、InputStream(字节流)2、OutputStream(...
    99+
    2022-11-12
  • 新手了解java 集合基础知识
    目录一、概述Java集合体系结构:二、collection1、List1)ArrayList2)LinkedList2、set1)HashSet2)TreeSet1.实体类2.测试类...
    99+
    2022-11-12
  • 新手了解java 泛型基础知识
    目录1、什么是泛型2、泛型的使用规则3、泛型应用实例总结1、什么是泛型 ​ 泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类...
    99+
    2022-11-12
  • 新手了解java 反射基础知识
    目录一、反射概述二、常用api三、创建Class对象的四种方式总结一、反射概述 Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection...
    99+
    2022-11-12
  • 新手了解java 多线程基础知识
    目录一、线程的生命周期JDK中用Thread.State类定义了线程的几种状态:二、线程同步1、为什么要有线程同步2、synchronized2.1同步代码块2.2同步方法3、Loc...
    99+
    2022-11-12
  • 新手了解java 异常处理基础知识
    目录一、异常体系结构1.什么是异常2.异常的体系结构二、异常处理throw 与 throws三、自定义异常运行时异常编译时异常总结一、异常体系结构 1.什么是异常 在java程序运行...
    99+
    2022-11-12
  • 新手了解java 类,对象以及封装基础知识
    目录1、类2、对象3.方法的重载 什么是方法的重载4、构造器 什么是构造方法构造方法语法:构造方法特点5.this this指代当前对象,即哪个对象调用就指代哪个对象6.封装封装的作...
    99+
    2022-11-12
  • 简单了解mysql基础知识
    下面一起来了解下mysql基础知识,相信大家看完肯定会受益匪浅,文字在精不在多,希望mysql基础知识这篇短内容是你想要的。           ...
    99+
    2022-10-18
  • java最新基础知识面试题
    java最新基础知识面试题1、static关键字什么意思?java中是否可以覆盖一个private或者是static的方法?“static”表明一个成员变量或者是成员方法可以在没有所属类的实例变量的情况下访问。java中static方法不能...
    99+
    2014-06-09
    java面试题 java 面试题 基础
  • Java基础知识精通数组的使用
    目录1.数组2.数组定义格式3.访问数组4.遍历数组前言:本文章正式踏入数组部分,今天来讲一下数组。 1.数组 数组是一组数据结构,用来储存一组相同类型值的集合。 数组就是一个容器。...
    99+
    2022-11-13
  • ASP新手要知道的基础知识有哪些
    ASP新手要知道的基础知识有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。我们都知道,ASP是Active Server Page的缩写,意为“动态服务器页...
    99+
    2023-06-17
  • Java基础之数组超详细知识总结
    目录一、一维数组二、二维数组三、总结一、一维数组 1、Java语言中的数组是一种 引用数据类型。不属于基本数据类型。数组的父类是 Object。 2、数组实际上是一个容器,可以同时容...
    99+
    2022-11-12
  • 3000字扫盲shell基础知识(新手必备)
    不论前端还是后端,再学会linux的基础上,还应该学会写一些简单的Shell。不止是工作,日常中想做一些东西,如果手动做就很累人也费时间,如果你会用Shell脚本处理就很简单了,本文普及的shell的一些基础知识。后面还...
    99+
    2022-06-04
    shell入门 shell基础知识
  • 了解 MySQL 中外键的基础知识?
    外键可用于创建表之间的关系。外键关系可以是一对一或一对多。外键与另一个表的另一个字段匹配。 一对一关系 - 一个表中的一条记录将链接到另一个表中的一条记录。 一对多关系 - 一条记录将链接到另一个表中的多条记录。 下面是一个例子。首先,我们...
    99+
    2023-10-22
  • 带你了解CSS基础知识,样式
    目录什么是CSS在HTML页面中嵌套使用CSS的两种方式三种方式代码展示链入外部样式表文件以下是常用的样式总结什么是CSS CSS(Cascading Style Sheet):层叠...
    99+
    2022-11-12
  • Java基础知识精通二维数组的应用
    目录1.什么是二维数组2.定义格式3.二维数组的使用4.二维数组的遍历本文章主要讲二维数组定义,用法。 1.什么是二维数组 在二维数组多个元素为一维数组的数组就称为二维数组 2.定义...
    99+
    2022-11-13
  • Java基础知识精通数组的内存分析
    目录1.数组内存图2.两个数组的内存图3.一个变量两个数组容器的内存图4.两个变量指向一个数组容器的内存图前言:本文章主要讲解数组的内存图,更好地掌握数组以及数组调用流程,话不多说开...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作