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. arcface和Dlib人脸识别算法对比

    我司最近要做和人脸识别相关的产品,原来使用的是其他的在线平台,识别率和识别速度很满意,但是随着量起来的话,成本也是越来越不能接受(目前该功能我们是免费给用户使用的),而且一旦我们的设备掉线了就无法使用 ...

  2. 关于fstream、ifstream、ofstream读写文本文件、二进制文件详解

    fstream.ifstream.ofstream是c++中关于文件操作的三个类 fstream类对文件进行读操作和写操作 打开文件 fstream fs("要打开的文件名",打开 ...

  3. 将本地项目上传到gitlab下

    转载自: https://blog.csdn.net/litianxiang_kaola/article/details/74075151 1.安装git    https://git-scm.com ...

  4. QSplitter实现滑动窗口和悬浮按钮

    1         QSplitter实现滑动窗口和悬浮按钮 软件应用中需要设计右侧滑动窗口,通过一个按钮来实现窗口的隐藏和显示,应用场景比如显示主界面的详细信息. (1)   在qt design中 ...

  5. 对Maven项目进行强制更新

    选中项目 然后 选中Force Update of Snapshots/Releases,点击OK即可. 此时pom.xml就不会报错了.

  6. 监听浏览器种类,并区分safari和chrom浏览器

    //判断浏览器种类函数-处理兼容性 function myBrowser(){ var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 va ...

  7. ThinkPHP的数据操作

    查询: 具体数据的操作方法使用: 1. where()条件     $model->where(条件值);  //条件值就是sql语句where后边的结果值 2. limit() 限制条数  $ ...

  8. C# ftp 上传、下载、删除

    public class FtpHelper { public static readonly FtpHelper Instance = new FtpHelper(); /// <summar ...

  9. 如何使用mysql profiling功能分析单条查询语句

    Mysql从5.1版本开始引入show profile来剖析单条语句功能 一. 查看是否支持这个功能 yes表示支持 mysql> show variables like 'have_profi ...

  10. 基于windows使用fabric将gitlab的文件远程同步到服务器(本地)

    # -*- coding: utf-8 -*- from fabric.api import env, run, local, put from fabric.operations import su ...