1、数组

<span class="pun">&#x6570;&#x7EC4;&#x662F;&#x4E00;&#x79CD;&#x6570;&#x636E;&#x7C7B;&#x578B;&#xFF0C;&#x5C5E;&#x4E8E;&#x5F15;&#x7528;&#x6570;&#x636E;&#x7C7B;&#x578B;,&#x5B58;&#x50A8;&#x76F8;&#x540C;&#x6570;&#x7C7B;&#x578B;&#x7684;&#x4E00;&#x7EC4;&#x6570;&#x636E;&#x3002;</span>

1 public class MyTest02 {
 2     public static void main(String[] args) {
 3         //数组定义语法    数据类型[] 数组名
 4         int[] a;
 5         //分配空间:告诉系统,当前数组存储多个元素
 6         //new:Java关键字,给引用数据类型变量分配内存空间
 7         //new就是在堆中分配若干个连续的可用空间,赋默认值:int-0,double-0.0,boolean-false
 8         a=new int[5];
 9         //数组元素通过下标访问,第一个元素的下标是0
10         System.out.println(a[0]);
11         System.out.println(a[1]);
12         System.out.println(a[2]);
13         System.out.println(a[3]);
14         System.out.println(a[4]);
15         //数组使用不要超出下标,数组越界异常
16         //Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
17         System.out.println(a[5]);
18     }
19 }

1、数组

引用类型和基本类型的区别

内存空间分配方式不同

赋值方式不同

遍历

foreach增强语句,注意一点就行,只是把元素取出来赋值(是在宅里面改变),并不会改变堆里面元素的值,所以foreach语句只用来进行遍历

数组扩容

就是用把要扩容的数组赋值给另一个开辟空间大的数组,暂时是这样

1 public static void main(String[] args) {
 2         int[] a=new int[]{1,2,3};
 3         int[] b=new int[10];
 4         for (int i = 0; i < a.length; i++) {
 5             b[i]=a[i];
 6         }
 7         a=b;
 8         for (int i:a){
 9             System.out.print(i+"\t");
10         }
11     }

数组反转

1 public static void main(String[] args) {
 2         int[] a={1,2,3,4};
 3 //        反转前
 4         System.out.println("反转前:");
 5         for (int i = 0; i < a.length; i++) {
 6             System.out.print(a[i]+"\t");
 7         }
 8 //        反转后
 9         System.out.println("反转后:");
10         int temp=0;
11         for (int i = 0; i < a.length/2; i++) {
12             temp=a[i];
13             a[i]=a[a.length-1-i];
14             a[a.length-1-i]=temp;
15         }
16         for (int i = 0; i < a.length; i++) {
17             System.out.print(a[i]+"\t");
18         }
19     }

数组添加

1 package com.Oct25;
 2
 3 import java.util.Scanner;
 4
 5 //添加数组元素
 6 public class MyTest06 {
 7     public static void main(String[] args) {
 8         System.out.println("请输入添加的值:");
 9         Scanner scanner = new Scanner(System.in);
10         int num = scanner.nextInt();
11 //        定义数组存放成绩,一些成绩已经有了,-1代表还没有填入成绩的空值
12         int[] score= {12,34,53};
13 //        思路:添加元素到-1,但必须是第一个-1的位置
14 //        所有应该查找第一个-1元素所在的位置
15         int index=-1;
16         for (int i = 0; i < score.length; i++) {
17             if (score[i]==-1){
18                 index=i;
19                 break;
20             }
21         }
22         if (index!=-1){
23             score[index]=num;
24             System.out.println("添加成功");
25         }else {
26             System.out.println("没有空间再给你添加了");
27         }
28         for (int i = 0; i < score.length; i++) {
29             if (score[i]==-1){
30                 break;
31             }
32
33             System.out.print(score[i]+"\t");
34         }
35
36     }
37 }

数组删除

1 package com.Oct25;
 2
 3 import java.util.Scanner;
 4
 5 //删除数组
 6 public class MyTest07 {
 7     public static void main(String[] args) {
 8         int[] a= {1,3,2,4,5,-1,-1};
 9         int index=-1;
10         Scanner scanner = new Scanner(System.in);
11         System.out.println("请输入要删除的元素:");
12         int num = scanner.nextInt();
13         for (int i = 0; i < a.length; i++) {
14             if (a[i]==num){
15                 index=i;
16                 break;
17             }
18         }
19         if (index!=-1){
20             for (int i =index+1; i < a.length; i++) {
21                 a[i-1]=a[i];
22             }
23         }else {
24             System.out.println("没有要删除的元素");
25         }
26
27         for (int i = 0; i < a.length; i++) {
28             if (a[i]==-1){
29                 break;
30             }
31             System.out.println(a[i]);
32         }
33     }
34 }

Arrays工具类

JDK提供了一些操作数组的方法

Arrays.toString:将数组转换成字符串的形式

二维数组

含义:可以看成一个一维数组,里面又存储一个一维数组

int[ ][ ] a=new int[ 2][ 3] 两行三列的数组

就这样子存储的:{ {1,3,2} , {2,5,6} }

1、数组

Original: https://www.cnblogs.com/hxbhxb/p/15483851.html
Author: 金涛骇浪
Title: 1、数组

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/575234/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 用户态与内核态,上下文的理解

    系统调用 为了安全应用程序无法直接调用的硬件的功能,而是将这些功能封装成特定的函数。当应用程序需要硬件功能时(例如读写文件),就需要进行系统调用。当进程进行系统调用后就从用户态装换…

    Java 2023年6月6日
    053
  • el-form表单 input回车刷新页面问题

    1原因 是因为当form表单中只有一个input时,按下回车建会自动触发页面的提交功能, 所以会产生刷新页面的行为 解决方案: <el-form :model="q…

    Java 2023年6月5日
    078
  • Nginx 源码分析– ngx_string 的一些简单分析

    对于一个web服务器程序来说,对字符串处理的需求是必须的。由于web环境下的各种编码,也导致了web服务器程序字符串处理的繁杂性。在nginx源码中,ngx_string.c这个文…

    Java 2023年6月15日
    085
  • vmware安装或卸载时,显示无法打开注册表项

    vmware卸载是出了名的臭名昭著,因为太难删干净了,删不干净又会有各种各样的问题。比如下文这个”无法打开注册表项” 这个我相信有很多人在重装vmware的…

    Java 2023年6月13日
    064
  • springcloud

    转载于狂神老师 ,本文仅作为笔记使用 回顾之前的知识~●JavaSE ●数据库●前端●Servlet ●Http ●Mybatis ●Spring ●SpringMVC ●Spri…

    Java 2023年6月9日
    051
  • 排序算法详解(java代码实现)

    ​ 排序算法大致分为内部排序和外部排序两种 内部排序:待排序的记录全部放到内存中进行排序,时间复杂度也就等于比较的次数 外部排序:数据量很大,内存无法容纳,需要对外存进行访问再排序…

    Java 2023年6月13日
    081
  • java高并发,如何解决,什么方式解决

    案例一: 订票系统案例,某航班只有一张机票,假定有1w个人打开你的网站来订票,问你如何解决并发问题(可扩展到任何高并发网站要考虑 的并发读写问题) 问题,1w个人来访问,票没出去前…

    Java 2023年5月29日
    051
  • 从零开始实现lmax-Disruptor队列(五)Disruptor DSL风格API原理解析

    在v4版本的MyDisruptor实现多线程生产者后。按照计划,v5版本的MyDisruptor需要支持更便于用户使用的DSL风格的API。 由于该文属于系列博客的一部分,需要先对…

    Java 2023年6月8日
    044
  • Java并发编程volatile关键字

    volatile理解 Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和volatile 关键字机制。volatile具有synchronized关键…

    Java 2023年6月7日
    064
  • Spring 源码(16)Spring Bean的创建过程(7)属性填充

    知识回顾 上一篇介绍了 Spring中三级缓存的 singletonObjects、 earlySingletonObjects、 singletonFactories, Spri…

    Java 2023年6月14日
    072
  • MINIO使用

    1.作用 官网地址:https://docs.min.io/ 文件存储。文件对象的上传、下载和删除! 2.使用依赖 io.minio minio 8.4.3 3. 构建client…

    Java 2023年6月9日
    077
  • Springboot使用Maven Profile和Spring Profile进行多环境配置

    https://www.jianshu.com/p/b7c75b0c364c Original: https://www.cnblogs.com/tszr/p/16506781.h…

    Java 2023年5月30日
    063
  • Java面向对象(四)

    Java面向对象(四) Java面向对象(四) – 十一、package 关键字(拓展) 11.1 package 关键字的使用: 11.2 包的作用: 11.3 Ja…

    Java 2023年6月9日
    063
  • 请求合并与拆分在并发场景中应用

    一、序言 在并发场景中,当热点缓存Key失效时,流量瞬间打到数据库中,此所谓缓存击穿现象;当大范围的缓存Key失效时,流量也会打到数据库中,此所谓缓存雪崩现象。 当使用分布式行锁时…

    Java 2023年6月6日
    067
  • [Java]HashMap与ConcurrentHashMap的一些总结

    HashMap底层数据结构 JDK7:数组+链表 JDK8:数组+链表+红黑树 JDK8中的HashMap什么时候将链表转为红黑树? 当发现链表中的元素大于8之后,判断当前数组长度…

    Java 2023年6月5日
    069
  • 云图说丨DDoS防护解决方案:DDoS大流量攻击防得住

    摘要:华为云安全服务打造DDoS防护解决方案,助您防患于未然,筑牢业务安全防线。 本文分享自华为云社区《【云图说】第255期 DDoS防护解决方案:DDoS大流量攻击防得住》,作者…

    Java 2023年6月15日
    064
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球