java互联网架构软件工程师——第一阶段
Day06–数组+数组的遍历+数组工具类Arrays文章目录
前言
1.学习数组
2.学习数组的遍历
3.学习数组的工具栏Arrays
提示:以下是本篇文章正文内容,下面案例可供参考
一、数组
1.1概述
可以存放 多个 相同类型的 数据
英文Array,标志是[]
数组中的元素都有下标(从0开始)
1.2 创建数组
一般分为 动态初始化 和 静态初始化
语法 : 数组类型[] 数组名 = new 数组类型[数组的长度];
动态初始化
int[] a = new int [10]; // a 是引用类型的变量
静态初始化
两种方式:
int[] b = new int []{1,2,3,4,5,};
int[] b = {1,2,3,4,5,};
1.3 入门案例
代码如下(示例):
// 测试 数组
public class Test01 {
public static void main(String[] args) {
//1.在内存中,开辟存储空间,容量自定义
//2.完成数据初始化
//把默认值改成你想要的值,显示的初始化
//3.给数组分配 唯一的标志 地址值
//4.在内存中开辟空间,存放 引用类型的变量a
//5.把地址值交给引用类型的变量 a 保存
// 练习-> 把 hello 存入数组里
//静态初始化
//char [] a =new char[]{'h','e','l','l','o'};
char [] a ={'h','e','l','l','o'};
System.out.println(a);//hello
// 动态初始化
char[] i = new char [5];
i[0] = 'h';//修改i数组中,0下标对应的数据
i[1] = 'e';//修改i数组中,1下标对应的数据
i[2] = 'l';//修改i数组中,2下标对应的数据
i[3] = 'l';//修改i数组中,3下标对应的数据
i[4] = 'o';//修改i数组中,4下标对应的数据
System.out.println(i[0]);
//获取i数组中,0下标对应的数据
System.out.println(i);//hello
System.out.println(i.length);//获取数组的长度
// length属性获取数组长度
// 数组一旦创建,长度不可变
// 允许0长度的数组
//访问了不存在的下标,就会报错:数组下标越界 -->使用数组常见错误
//System.out.println(i[5]);
//Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
//at day01.Test01.main(Test01.java:33
}
}
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、数组的遍历/循环
2.1目的
就是根据下标,获取数组里的每个数据
2.2语法
for(开始位置;循环条件;更改条件){
循环体
}
for(从下标为0位置开始;下标最大值<=数组的长度-1;下标 ++){
循环体
}
2.3入门案例
代码如下(示例):
//测试 数组的遍历
public class Test02 {
public static void main(String[] args) {
method();//调用指定方法
method1();//打印每个月的天数
method2();//存入1到10
int[] x=method3();//存入随机数
method4(x);//打印随机数里的奇数
}
//打印a数组里奇数
public static void method4(int[] e){
//打印a数组里奇数
for(int y=0;y<=e.length-1;y++){
if(e[y]%2==1){
System.out.println("输出"+e[y]);
}
}
}
//创建方法
//存入随机数
public static int[] method3(){
System.out.println("\t");
System.out.println("数组中存入100以内随机数");
//定义动态数组
int[] e= new int [10];
for(int f = 0;f<=e.length-1;f++){
//把默认值改成随机数
e[f] = new Random().nextInt(100);
System.out.print(e[f]+"\t");
}
for(int f = 0;f<=e.length-1;f++){
//打印
System.out.print(e[f]+"\t");
}
return e; //把a的值返回给外界使用
}
//创建方法
//存入1到10
public static void method2(){
System.out.println("\t");
System.out.println("数组中存入1到10");
int[] c =new int [10];
for(int d = 0; d<=c.length-1;d++){
d=d++;
System.out.println(d+1);
}
}
//创建方法
//输出每个月的天数
public static void method1() {
System.out.println("\t");
System.out.println("打印每个月的天数");
int [] a = {31,29,31,30,31,30,31,31,30,31,30,31};
for(int b =0;b<=a.length-1;b++){
System.out.println("第"+(b+1)+"月有"+a[b]+"天");
}
}
//创建方法
public static void method(){
// 1. 静态创建数组
String [] i = {"Giao哥","马保国","药水哥","年轻人"};
//2.遍历数组
for(int m =0;m<=i.length-1;m++){
//打印a数组中i下标对应的元素
System.out.println(i[m]);
}
}
}
三、数组的工具类—Arrays
3.1 概述
专门为数组,提供了各种常见的方法
3.2 常用方法
(1)toString()–> 把数组里的数据变成字符串
toString(int[] a)
(2)sort() --> 把无序进行排序
sort(int[] a)
(3) copyOf()–>复制
copyOf(int[] original, int newLength)
3.1 入门案例
代码如下(示例):
// 测试 数组工具类Arrays
public class Test03 {
public static void main(String[] args) {
method();//toString ()
method1();//sort()
method2();//copyOf()
}
//copyOf()-->复制
//copyOf(int[] original, int newLength)
public static void method2() {
//1.准备源数组
String [] a = {"年轻人","不讲武德"};
//2.调用方法完成复制
//copyOf(1,2) --> 1是源数组名 , 2是新数组长度
String [] b=Arrays.copyOf(a , 4 );
// 新数组的容量大于旧数组的容量,空出来的位置会用默认值代替
// 新数组的容量小于旧数组的容量,只复制一部分数值过来
//[年轻人, 不讲武德, null, null] --> 扩容--新数组容量 > 旧数组的长度
//[年轻人] --> 缩容 -- 新数组容量 < 旧数组容量
//打印
System.out.println(Arrays.toString(b));
}
// sort() --> 把无序进行排序
public static void method1() {
//定义数组
int[] a = {44,85,65,12,64};
//使用工具类进行排序
Arrays.sort(a);
//打印
System.out.println(Arrays.toString(a));
}
//创建 toString()--> 把数组里的数据变成字符串
public static void method(){
int[] a = {1,2,3,4,5,6};
//遍历数组并打印
/** for(int b = 0;b<=a.length-1;b++){
System.out.println(a[b]);
}
*/
//TOOD 优化 ---使用工具类的方法,展示a数组里的数据
System.out.println(Arrays.toString(a));//[1, 2, 3, 4, 5, 6]
}
}
该处使用的url网络请求的数据。
四、扩展
4.1 实参和形参的区别
实参是调用方法时,具体要设置的值
形参是创建方法时,规定的参数的类型
public static void add2(String x)//参数x是形参
add2("tony");//参数tony是实参
4.1 数组练习
--统计数组中偶数的个数
--统计数组中奇数的和
--获取数组里的最大值最小值
总结
以上就是今天所讲的内容,自己多加练习就好了,一定要结合案例一起看,不然很难理解