java 一维数组_java基础 ---- 一维数组

为什么要使用数组: 因为不使用数组计算多个变量的时候太繁琐,不利于数据的处理。

--------   数组也是一个变量,是存储一组相同类型的变量

2330248eac8d8b71bdeb8cef6625b3d5.png

声明一个变量就是在内存中划出一块合适的空间

声明一个数组就是在内存中划出一块连续的空间

dadd5727db590755177d793d49580989.png

数组长度就是数组存放了多少个数,最大下标等于数组长度减一

数组中所有的元素必须属于相同的数据类型

-----------  如何使用数组

45831f6d385912ce0ab80d627ddd519c.png

0cb9342f8994da755d2cfc81c35fa9e4.png

876c521a1f5adb46bc2ae6de989a43e7.png

61d98887b3ce4d192bc8d0da61fb922c.png

b838c3e190325b598fc85d8bae156421.png

adcfbc79216218ed54800fa98bcc3ef6.png

abbd1f7c7e2880c7f46621be00d832e8.png

102dba41e9b80b54a6e407cc845b6a6a.png

注意: 在边声明边赋值的时候不要再声明长度了   [] 中不要在写值了偶

边声明边赋值的时候数组的长度就被确定了,不能在往数组里面添加数字了

----   练习

importjava.util.Scanner;public classArrayDemo {/*** 使用数组计算平均分*/

public static voidmain(String[] args) {int[] scores = new int[5]; //成绩数组

int sum = 0; //成绩总和

Scanner input = newScanner(System.in);

System.out.println("请输入5位学员的成绩:");for(int i = 0; i < scores.length; i++){

scores[i]=input.nextInt();

sum= sum + scores[i]; //成绩累加

}/*//使用foreach遍历

for(int i = 0; i < scores.length; i++){

scores[i] = input.nextInt();

}

for(int score:scores){

sum+=score;

}*/

//计算并输出平均分

System.out.println("学员的平均分是:" + (double)sum/scores.length);

}

}

6be379501270334ae04290f8d461307e.png

----- 使用数组的常见错误

1、直接赋值的时候不需要写长度  但是不赋值的话要写长度,    int[] scores = new int[];

2、数组下标越界异常      下标超过了数组长度减一的值

d6b017481df32f7247ba495a5edffb3d.png

3、在进行创建数组并赋值的时候要放在同一条语句中

----  猜数游戏

import java.util.*;public classGuessData {public static voidmain(String[] args) {int[] list = new int[] { 8, 4, 2, 1, 23, 344, 12 }; //创建数组并赋值

int sum=0;//循环输出数列的值//求数列中所有数值的和

for(intnum:list){

System.out.println(num);

sum+=num;

}

System.out.println("数组元素之和为:"+sum);

Scanner input= newScanner(System.in);

System.out.print("请输入一个整数: ");int guess =input.nextInt();boolean isCorrect = false;for (int i = 0; i < list.length; i++) {if (guess ==list[i]) {

isCorrect= true;break;

}

}if(isCorrect) {

System.out.println("猜对了!");

}else{

System.out.println("Sorry!");

}

}

}

-----   求最大值

importjava.util.Scanner;public classMaxScore {/*** 求数组最大值*/

public static voidmain(String[] args) {int[] scores = new int[5];int max = 0; //记录最大值

System.out.println("请输入5位学员的成绩:");

Scanner input= newScanner(System.in);for(int i = 0; i < scores.length; i++){

scores[i]=input.nextInt();

}//计算最大值//使用max存储擂主初始值:第一个元素为擂主

max = scores[0];//循环打擂

for(int i = 1; i < scores.length; i++){if(scores[i] >max){

max=scores[i];

}

}

System.out.println("考试成绩最高分为:" +max);

}

}

----------  插入数值

有一个降序排列的数组,新增一个数字,也要保持降序排列

注要就是把插入的数值与数组中的值依次进行比较,找到第一个数值比他小的位置,就是他要插入的位置,然后在把他下标往后面的移动一位,

import java.util.*;public classInsert {public static voidmain(String[] args) {int[] list = new int[6]; //长度为为6的数组

list[0] = 99;

list[1] = 85;

list[2] = 82;

list[3] = 63;

list[4] = 60;int index = list.length; //保存新增成绩插入位置

System.out.println("请输入新增成绩: ");

Scanner input= newScanner(System.in);int num = input.nextInt(); //输入要插入的数据//找到新元素的插入位置

for (int i = 0; i < list.length; i++) {if (num >list[i]) {

index=i;break;

}

}//元素后移

for (int j = list.length - 1; j > index; j--) {

list[j]= list[j - 1]; //index下标开始的元素后移一个位置

}

list[index]= num;//插入数据

System.out.println("插入成绩的下标是:" +index);

System.out.println("插入后的成绩信息是: ");for (int k = 0; k < list.length; k++) { //循环输出目前数组中的数据

System.out.print(list[k] + "\t");

}

}

}

-----  统计数组中奇数和偶数的个数

packagecn.jbit.lesson3;importjava.util.Scanner;/*** 统计数组中的奇数和偶数的个数**/

public classArrayEx {public static voidmain(String[] args) {int[] array = new int[8];

Scanner input= newScanner(System.in);int count1 = 0; //记录奇数的个数

int count2 = 0; //记录偶数的个数//从控制台接收8个整数,分别统计奇数和偶数的个数

for(int i=0;i

System.out.print("请输入第"+(i+1)+"个整数:");

array[i]=input.nextInt();if(array[i]%2==0){

count1++;

}else{

count2++;

}

}

System.out.println();

System.out.println("奇数的个数是:"+count2+"。");

System.out.println("偶数的个数是:"+count1+"。");

}

}

----  数组倒叙复制输出

1 packagecn.jbit.lesson3;2 /**

3 * 数组倒序复制输出4 *@authorboge5 *6 */

7 public classArrayEx2 {8 public static voidmain(String[] args) {9 int[] array = new int[10]; //源数组

10 int[] newArray = new int[10]; //目标数组

11 for(int i=0;i

13 }14 System.out.println("原数组:");15 for(intnum:array){16 System.out.print(num+"\t");17 }18

19 System.out.println();20

21 int index = array.length-1;22

23 for(int i=0;i

27 System.out.println("新数组:");28 for(intnum:newArray){29 System.out.print(num+"\t");30 }31 }32 }

------ 去除数组中的0

/*** 去除数组中的0

**/

public classArrayEx3 {public static voidmain(String args[]){int oldArr [] = {11,31,23,54,0,0,77,90,0,5,42,71,63,79,60,53} ;int count = 0 ; //记录数组中不为0的元素个数

for(int i = 0 ; i < oldArr.length; i++){if(oldArr[i] != 0){

count++ ; //统计个数

}

}int newArr [] = new int[count] ; //新数组//将原数组中不为0的元素保存到新数组中

int j = 0 ; //控制新数组的下标

for(int i = 0 ; i < oldArr.length; i++){if(oldArr[i] != 0){

newArr[j++] =oldArr[i] ;

}

}//输出新数组

for(int i = 0 ; i< newArr.length ; i++){

System.out.print(newArr[i]+ "\t") ;

}

}

}

----  合并数组

1 public classArrayEx4 {2 public static voidmain(String args[]){3 int arrayA [] = new int[] {1,7,9,11,13,17,19} ;4 int arrayB [] = new int[] {2,4,6,8,10} ;5

6 int len = arrayA.length + arrayB.length ; //新数组的大小

7 int arrayC[] = new int[len] ; //新数组

8

9 System.arraycopy(arrayA,0,arrayC,0,arrayA.length) ; //拷贝第一个数组

10 System.arraycopy(arrayB,0,arrayC,arrayA.length,arrayB.length) ; //拷贝第二个数组

11 java.util.Arrays.sort(arrayC) ;12

13

14 for(int x = 0 ; x< arrayC.length ; x++){15 System.out.print(arrayC[x] + "、") ;16 }17 }18 }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/367098.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

四则运算2

作业描述&#xff1a; 悲催的二柱子接到了老师要求给软件增加一些小小的功能&#xff0c;具体要求如下&#xff1a; 1、除了整数以外&#xff0c;还要支持真分数的四则运算&#xff08;需要验证结果的正确性&#xff09;&#xff1b; 2、一次出的题目避免相互重复&#xff1b; …

Java中的策略设计模式-示例教程

策略模式是行为设计模式之一 。 当我们对一个特定任务有多种算法&#xff0c;并且客户端决定在运行时使用的实际实现时&#xff0c;将使用策略模式。 策略模式也称为策略模式 。 我们定义了多种算法&#xff0c;并让客户端应用程序将算法用作参数。 此模式的最佳示例之一是采用…

MySQL数据库主从复制

使用gtid &#xff08;也需要开启binlog日志&#xff09; CHANGE MASTER TO MASTER_HOST’192.168.95.11’, MASTER_USER’mysql12’, MASTER_PASSWORD’mysql12’,MASTER_AUTO_POSITION 1; 使用binlog CHANGE MASTER TO MASTER_HOST’192.168.95.12’, MASTER_USER’mysql…

vue-cli 3.0 使用全过程讲解

2018年8月13日更新&#xff1a; 恭祝vue-cli 3.0.0 官方正式版发布&#xff0c;此后我们可以正式在3.0环境下进行项目开发了。 此文发布以来受到了很多朋友的阅读&#xff0c;但我深知这篇文章还是很浅显的&#xff0c;因此&#xff0c;我会在后续的 3.0 使用过程中分享我遇到…

java反射机制在spring_Java反射机制在Spring IOC中的应用

IOC&#xff1a;即“控制反转”&#xff0c;不是什么技术&#xff0c;而是一种思想。使用IOC意味着将你设计好的对象交给容器控制&#xff0c;而不是传统的在你的对象内部直接控制。本篇文章主要讲解一下IOC底层实现的原理(反射)&#xff0c;Bean容器的实现&#xff0c;就不对I…

【图像处理】Haar-like特征

特征提取的原理、代码等&#xff1b; 如果是白黑白&#xff0c;是减去一个黑的还是2个黑的&#xff0c;网上有不同的说法&#xff1b;应该需要看原论文了。 论文原文 The sum of the pixels which lie within the white rectangles are subtracted from the sum of pixels in t…

mysql获取某个表的所有字段名

转载&#xff1a;mym43210 mysql安装成功后可以看到已经存在mysql、information_schema和test这个几个数据库。 information_schema库中有一个名为COLUMNS的表&#xff0c;这个表中记录了数据库中所有表的字段信息。 知道这个表后&#xff0c;获取任意表的字段就只需要一条sele…

neo4j / cypher:悬挂查询参数

一直以来&#xff0c;我一直在使用neo4j的密码查询语言&#xff0c; 迈克尔一直在告诉我在查询中使用参数&#xff0c;但是查询的性能始终可以接受&#xff0c;因此我没有必要。 但是&#xff0c;最近我正在研究一个数据集&#xff0c;并使用类似于以下的代码创建了约500个节点…

java调用浏览器组件来_Java 网页浏览器组件介绍

在使用 Java 开发客户端程序时&#xff0c;有时会需要在界面中使用网页浏览器组件&#xff0c;用来显示一段 HTML 或者一个特定的网址。本文将介绍在界面中使用浏览器组件的四种方法&#xff0c;给出示例的代码&#xff0c;并且分析每种方法的优点与不足&#xff0c;便于 Java …

前端入行两年--教会了我这些道理

1.前言 光阴似箭&#xff0c;日月如梭。不得不感慨时间过得很快&#xff0c;2017差不多结束了&#xff0c;一下子我从事前端开发的时间已经两年了。这两年可以说是一波三折&#xff0c;回想这两年的经历&#xff0c;让我忍不住了写下了这篇文章&#xff0c;记录自己在这两年经历…

解决Nginx: [error] open() Nginx.pid

使用nginx -c的参数指定nginx.conf文件的位置 sudo /usr/sbin/nginx -c /etc/nginx/nginx.conf 转载于:https://www.cnblogs.com/vannn/p/9756132.html

巴霍巴利王

巴霍巴利王 惊心动魄的宫廷政变&#xff0c;必然铸就新的王朝更迭。时代的婉转&#xff0c;终究选上得民心的君主。我们的故事就这样悄无声息的将你带入幽深的宫廷内院。 夜幕之中&#xff0c;面对寒冷与杀戮&#xff0c;一位身负重伤王室女人&#xff0c;抱着一个新生儿&#…

Java中的观察者设计模式-示例教程

观察者模式是行为设计模式之一 。 当您对对象的状态感兴趣并希望在发生任何更改时得到通知时&#xff0c;观察者设计模式很有用。 在观察者模式中&#xff0c;监视另一个对象状态的对象称为Observer &#xff0c;而正在监视的对象称为Subject 。 根据GoF&#xff0c;观察者模式…

华为大数求和 java_大数乘积java

{"data":{"id":"8000-000000437045-0","name":"SEO专题页栏目分发组","type":"1","position":"8000-000000004003-0","status":1,"linkList":[{"id"…

IdnentiyServer-使用客户端凭据访问API

情景如下&#xff1a;一个客户端要访问一个api&#xff0c;不需要用户登录&#xff0c;但是又不想直接暴露api给外部使用&#xff0c;这时可以使用identityserver添加访问权限。 客户端通过clientid和secrect访问identitserver的Token Endpoint,获取accesstoken&#xff1b; 接…

重要·Flutter 首个预览版 发布

今天&#xff0c;InfoQ China 主办的 GMTC 全球大前端技术大会在北京举行&#xff0c;在这次大会中 Google 宣布发布 Flutter 首个预览版。这无疑让 Flutter 迈上了一个新的台阶。于此同时推出了 Flutter 社区中文资源 。可能有些同学还不了解 Flutter&#xff0c;这里再普及一…

复习做UWP时涉及到的几种加密签名相关

复习做UWP时涉及到的几种加密签名相关 原文:复习做UWP时涉及到的几种加密签名相关本人菜鸟一枚&#xff0c;大学里凭兴趣学了一点WP的皮毛&#xff0c;后来又幸运&#xff08;或者不幸&#xff09;的进了一家专注于Windows生态的公司做了一段时间的UWP。在博客园写点自己遇到的…

Java中的中介器设计模式-示例教程

中介者模式是行为设计模式之一 &#xff0c;因此它处理对象的行为。 中介器设计模式用于在系统中不同对象之间提供集中式通信介质。 根据GoF&#xff0c;中介者模式意图是&#xff1a; 通过封装不同对象集相互交互和通信的方式&#xff0c;允许松散耦合。 允许每个对象集的动作…

java gc full gc_Java中full gc什么意思?

慕雪6442864除直接调用System.gc外&#xff0c;触发Full GC执行的情况有如下四种。1. 旧生代空间不足旧生代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足的现象&#xff0c;当执行Full GC后空间仍然不足&#xff0c;则抛出如下错误&#xff1a;java.lang.Out…

springboot-RequestMappingHandlerMapping

作用&#xff1a;查看应用请求对应的ur和方法l情况 实例&#xff1a; RequestMappingHandlerMapping mapping applicationContext.getBean("requestMappingHandlerMapping",RequestMappingHandlerMapping.class);Map<RequestMappingInfo, HandlerMethod> map …