1.数组:

01.一组 相同数据类型的集合!
02.数组在内存中会 开辟一串连续的空间来保存数据!

***存储30名学生的姓名!

01.姓名 应该用什么数据类型保存??? String
02.难道需要创建30个String类型的变量吗??? 不需要

*********

人类 [] 1号车厢=new 人类[50];
找到18号座位的乘客
1号车厢[18]="小黑";

*********

***数组的基本要素:
元素的类型: 人类 数组中每个元素的数据类型
标识符: 1号车厢 数组的名称
数组的长度: [50]
数组的元素:"小黑"
元素的下标:[18] 数组的下标从0开始!

想访问到数组中的元素,必须通过数组的下标来访问!

***语法:

数据类型 [] 数组名称=new 数据类型 [大小];

***使用:

01. 声明数组 创建一个火车车厢
int [] nums;

02.分配空间 给火车创建座位
nums=new int[5];

03.赋值 乘客入座
nums[0]=50;
**************************************************
数组的长度一旦被定义,不允许被改变!

**************************************************

2.经典案例

01.

public static void main(String args[]) {
/**
* 需求:
* 想创建一个能保存5名学员成绩的数组!
*
* 分析:
* 01.学员成绩都是double类型
* 02.5学员是一个集合
*
* 相同数据类型的一组数据的集合=======》数组
*/

// double[] scores = new double[5]; 在声明数组的同时,在内存中开辟了5个连续的空间!
// System.out.println(scores[5]); 数组下标越界

String[] scores;// 声明数组
scores = new String[5]; // 开辟空间

/**
scores[0] = "小黑1";
scores[1] = "小黑2";
scores[2] = "小黑3";
scores[3] = "小黑4";
scores[4] = "小黑5";
* 使用循环给5名学生的姓名赋值
*
* scores.length:获取数组的长度
*
* 数组的下标最大值=数组的长度-1
*/
Scanner input = new Scanner(System.in);
for (int i = 0; i < scores.length; i++) {
System.out.println("请您输入下标是" + i + "的姓名");
scores[i] = input.next();
}

// 遍历==》把集合中的每个元素打印出来

for (int i = 0; i < scores.length; i++) {
System.out.println(scores[i]);
}

}
02.

public static void main(String[] args) {
/**
* 求数组的最大值 和 最小值
*/

// 定义一个数组 参赛的选手
int[] nums = { 50, 20, 100, 30, 400, 800 };
// 默认第一个元素先上台 擂主
int max = nums[0];
// 循环比较 打擂
for (int i = 0; i < nums.length; i++) {
// 如果发现 元素比 我们的max值大,那就让这个元素成为max
if (nums[i] > max) {
max = nums[i];
System.out.println("历届的擂主:" + max);
}
}
System.out.println("我最NB==》" + max);

}

03.

/**
*
* 需求:
* 有一组数据{10,5,6,80,100}
* 01.循环输出数组中的每一个元素
* 02.求数组中所有元素的和
* 03.猜字游戏,让用户输入一个数字,然后进行循环比较
*/
public static void main(String[] args) {
// 创建一个数组 保存这组数据
int nums[] = { 10, 5, 6, 80, 100 };
// 定义一个变量保存总数
int sum = 0;
System.out.println("*****遍历数组******");
for (int i = 0; i < nums.length; i++) {
sum += nums[i];
System.out.println(nums[i]);
}
System.out.println("总和为:" + sum);

System.out.println("请您输入一个数字:");
Scanner input = new Scanner(System.in);
int choose = input.nextInt();
boolean flag = false; // 默认没有找到
// 循环比较 于数组中的每一个元素进行比对
for (int i = 0; i < nums.length; i++) {
if (choose == nums[i]) {
flag = true;
break; // 找到之后直接退出循环
}
}
if (flag) {
System.out.println("恭喜您中奖!");
} else {
System.out.println("很遗憾......");
}

}

*******************************************************

3.拓展::::

01.

public class ArraysDemo02 {

/**
* Arrays是操作数组的工具类!
* int: 集合中每一个元素的数据类型
* num:只是一个变量名,保存每一个需要输出的元素
* nums:需要遍历的集合
* for(int num:nums){
* }
*/
public static void main(String[] args) {
int[] nums = { 50, 20, 100, 30, 400, 800 };
System.out.println("排序之前");
for (int num : nums) {
System.out.println(num);
}
// 01.实现数组的排序
Arrays.sort(nums);
// 使用for加强 实现遍历
System.out.println("排序之后");
for (int num : nums) {
System.out.println(num);
}
// 02.把数组转换成一个字符串
String result = Arrays.toString(nums);
System.out.println(result);
// 03.将数组中的所有元素都改变成一个值
Arrays.fill(nums, 521);
System.out.println("看看所有的元素是否被改变");
for (int num : nums) {
System.out.println(num);
}
System.out.println("新数组");
// 04.将数组复制成一个新数组
nums = Arrays.copyOf(nums, 10);
for (int num : nums) {
System.out.println(num);
}
// 05.查询某个元素 在 数组中的位置 前提 必须 先排序
int[] nums2 = { 50, 20, 100, 30, 400, 800 };
Arrays.sort(nums2);
int index = Arrays.binarySearch(nums2, 400);
System.out.println("400出现的位置是:" + index);

// 将一个Stirng类型的字符串转换成 char类型的数组
String a = "50,20,100,30,400,800";
char[] words = a.toCharArray();
for (char c : words) {
System.out.print(c);
}
}

02.

/**
* 需求:
* 01.以,为分割点,把String转换成一个数组
* 02.把String转换成int之后求和
*/
public static void main(String[] args) {
String a = "50,20,100,30,400,800";
String[] words = a.split(",");
// 定义一个变量保存 和
int sum = 0;
for (int i = 0; i < words.length; i++) {
sum += Integer.parseInt(words[i]);
}
System.out.println(sum);

System.out.println("*************字符的逆序输出***************");
char[] chars = { 'z', 'f', 'g', 'c', 'a', 'b', 'j' };
Arrays.sort(chars);
for (char c : chars) {
System.out.println(c);
}

for (int i = chars.length - 1; i >= 0; i--) {
System.out.println(chars[i]);
}

}

java⑾的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题

    背景起因: 记起以前的另一次也是关于内存的调优分享下   有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...

  3. Elasticsearch之java的基本操作一

    摘要   接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...

  4. 论:开发者信仰之“天下IT是一家“(Java .NET篇)

    比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...

  5. 故障重现, JAVA进程内存不够时突然挂掉模拟

    背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...

  6. 死磕内存篇 --- JAVA进程和linux内存间的大小关系

    运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...

  7. 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用

    有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...

  8. Java多线程基础学习(二)

    9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...

  9. Java多线程基础学习(一)

    1. 创建线程    1.1 通过构造函数:public Thread(Runnable target, String name){}  或:public Thread(Runnable target ...

  10. c#与java的区别

    经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...

随机推荐

  1. d3 data()数据绑定中的key函数

    官网https://github.com/d3/d3-selection/blob/master/README.md#selection_data var data = [ {name: " ...

  2. lua --- 点号 和 冒号

    冒号的作用:1.定义函数时,给函数添加隐藏的第一个参数 self2.调用函数时,默认把当前调用者作为第一个参数传递进去 如 a:b(c) 可以理解为 a.b(a, c) 以下是用点号的定义和调用函数的 ...

  3. 用图来教你怎样用Photoshop蓝底转换红底

      教你怎样用红底转换成蓝底.PS其实学了这个,你就可以在白底红底蓝底之间不同转变了.   第一步   第二步   第三步   第四步         最后给你们看看对比效果图

  4. Spring 拦截器实现+后台原理(HandlerInterceptor)

    过滤器跟拦截器的区别 spring mvc的拦截器是只拦截controller而不拦截jsp,html 页面文件的.这就用到过滤器filter了,filter是在servlet前执行的,你也可以理解成 ...

  5. Python开发

    https://blog.csdn.net/weixin_42279140/article/details/81070854

  6. 使用Tomcat数据源的方式访问数据库(MySql) --Struts2框架应用与开发

    1.为方便测试首先创建数据库和表,然后插入测试数据   2.打开Tomcat服务器安装目录的conf/下的context.xml,配置context.xml文件. 在<Context>标签 ...

  7. 安卓四大组件之Sevice组件的简单使用 --Android基础

    1.本例实现了简单的Service(服务)的创建.启动和停止,点击“启动SERVICE”页面会显示“服务被创建”,接着是“服务被启动”.点击“停止SERVICE”页面提示“服务被停止”.太过基础,直接 ...

  8. ionic this.navCtrl.push()和this.navCtrl.pop()

    在ionic中,this.navCtrl.push()和this.navCtrl.pop()都是进行页面跳转,但是用法又有区别 例如有A  B  C三个页面,三个页面都是使用this.navCtrl. ...

  9. Mysql 中如何创建数据库和数据表

    这里的数据库为:user  数据表为 aaa mysql –uroot –p                 进入mysql create database user;            创建数据 ...

  10. xml的解构与组装

    xml的结构 <xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName>< ...