java⑾
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⑾的更多相关文章
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题
背景起因: 记起以前的另一次也是关于内存的调优分享下 有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...
- Elasticsearch之java的基本操作一
摘要 接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...
- 论:开发者信仰之“天下IT是一家“(Java .NET篇)
比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...
- 故障重现, JAVA进程内存不够时突然挂掉模拟
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...
- 死磕内存篇 --- JAVA进程和linux内存间的大小关系
运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...
- 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用
有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...
- Java多线程基础学习(二)
9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...
- Java多线程基础学习(一)
1. 创建线程 1.1 通过构造函数:public Thread(Runnable target, String name){} 或:public Thread(Runnable target ...
- c#与java的区别
经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...
随机推荐
- 华硕N55SF 折腾记
家里给老妈用的N55SL是2011年买的.这么多年了,最近一身毛病,最近来回折腾很多次.吐槽记录如下 1不定时花屏.闪屏,然后偶尔硬盘掉盘 (找不到硬盘,开机BIOS里).主要是使用一段时间之后发热, ...
- Codeforces 1073 E - Segment Sum
E - Segment Sum 思路: 数位dp 我们平时做的数位dp都是求满足条件的数的个数, 这里要求满足条件的数的和 只要在原来的基础上求每一位的贡献就可以了,所以传参数时要传两个 代码: #p ...
- 推送消息 web push notification
参考 : https://developers.google.com/web/fundamentals/engage-and-retain/push-notifications/ ( step b ...
- 最常出现的字符串 Most Common Word
2018-10-26 00:32:05 问题描述: 问题求解: 方法一.Trie 最长出现的字符串,最容易想到的解法就是Trie树了,于是首先使用Trie树进行了实现,代码量有点大,当然了是可以A掉的 ...
- c# 静态构造函数与私有构造函数共存
在使用静态构造函数的时候应该注意几点: 1.静态构造函数既没有访问修饰符,也没有参数.因为是.NET调用的,所以像public和private等修饰符就没有意义了. 2.是在创建第一个类实例或任何静态 ...
- JS 日期比较方法
1.日期参数格式:yyyy-mm-dd // a: 日期a, b: 日期b, flag: 返回的结果 function duibi(a, b,flag) { var arr = a.split(&qu ...
- 20180821ImportContactFromExcel
Excel创建vcf文件,借助百度云助手导入Iphone6Plus Sub CreateContractList() Set Wb = Application.ThisWorkbook FilePat ...
- Pudding Monsters CodeForces - 526F (分治, 双指针)
大意: n*n棋盘, n个点有怪兽, 求有多少边长为k的正方形内恰好有k只怪兽, 输出k=1,...,n时的答案和. 等价于给定n排列, 对于任意一个长为$k$的区间, 若最大值最小值的差恰好为k, ...
- SWUST OJ(953)
单链表的删除操作的实现 #include <stdio.h> #include <stdlib.h> typedef struct LinkNode //单链表节点结构的定义 ...
- 『TensorFlow Internals』笔记_源码结构
零.资料集合 知乎专栏:Bob学步 知乎提问:如何高效的学习 TensorFlow 代码?. 大佬刘光聪(Github,简书) 开源书:TensorFlow Internals,强烈推荐(本博客参考书 ...