Java入门系列-10-数组
这篇文章为你搞懂2个问题
1.什么是数组,数组是干嘛用的?
2.数组如何使用?
考试结束后,老师给二狗安排了一项任务,统计班里40名同学的平均分。按照我们之前的做法,我们可以定义40个变量然后再相加除以40求出平均分,但是这样太繁琐了,有没有更好的办法呢?那就是使用 数组。
数组
数组其实也是一个变量,顾名思义存储了一组相同类型的数据,声明一个数组就是在内存空间中分配出一连串的空间。
| 元素1 | 元素2 | 元素3 | …… |
|---|
使用数组需要四个步骤:
1.声明数组 int[] a;
2.分配空间 a=new int[5];
3.赋值 a[0]=8;
4.处理数据 a[0]=a[0]*10;
数组中的元素通过下标进行访问,下标从0开始
数组长度是在分配完空间后是固定不变的
数组中所有的元素必须是相同的数据类型
1.声明数组:告诉计算机数据类型是什么
语法:
数据类型 数组名[];
数据类型[] 数组名;
敲一敲:
public class DemoArray {
public static void main(String[] args) {
int[] score;//成绩
String[] name;//名字
}
}
2.分配空间:告诉计算机分配几个连续的空间
语法:
数组名=new 数据类型[大小];
或者 声明数组同时并分配空间:
数据类型[] 数组名=new 数据类型[大小];
敲一敲:
public class DemoArray {
public static void main(String[] args) {
int[] score;//成绩
String[] name;//名字
score=new int[40];
name=new String[40];
//声明变量同时并分配空间
int[] age=new int[40];
}
}
3.赋值:向分配的空间中放数据
敲一敲:
public class DemoArray {
public static void main(String[] args) {
int[] score;//成绩
String[] name;//名字
score=new int[40];
name=new String[40];
//声明变量同时并分配空间
int[] age=new int[40];
name[0]="张三";//向数组中第一个元素存放数据
name[1]="李四";//向数组中第一个元素存放数据
}
}
但是这样一个一个去赋值太麻烦了
敲一敲:1.声明数组的同时赋值
public class DemoArray1 {
public static void main(String[] args) {
int[] score= {67,55,93};//自动确定长度为3
String[] name=new String[] {"张三","李四","王五"};
}
}
敲一敲:2.使用循环从控制台获取信息并赋值
import java.util.Scanner;
public class DemoArray2 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int[] score=new int[40];
for (int i = 0; i < score.length; i++) {
score[i]=input.nextInt();
}
}
}
length是数组的属性,用于获取数组的长度
4.处理数据
敲一敲:遍历数组
public class DemoEachArray {
public static void main(String[] args) {
String[] name= {"香蕉","菠萝","西瓜"};
for (int i = 0; i < name.length; i++) {
String temp=name[i];
System.out.println(i+" "+temp);
}
}
}
可以打印数组,也可重新赋值等操作
工具类Arrays
Arrays类包含操作数组的各种方法,使用这个类需要
加入一行代码
import java.util.Arrays; 引入后使用。
| 方法名 | 说明 |
|---|---|
sort() |
对指定的数组按数字升序进行排序。 |
toString() |
返回指定数组内容的字符串表示形式。 |
copyOf() |
复制指定的数组到一个新数组,并指定新数组的长度 |
敲一敲:sort的使用
import java.util.Arrays;
public class DemoArraysSort {
public static void main(String[] args) {
int[] ages= {33,18,37,55,3};
Arrays.sort(ages);
for(int i=0;i<ages.length;i++) {
System.out.println(i+" "+ages[i]);
}
}
}
敲一敲:toString的使用
import java.util.Arrays;
public class DemoArraysToString {
public static void main(String[] args) {
String[] name= {"张三","李四","王五","赵六"};
String result=Arrays.toString(name);
System.out.println(result);
double[] money= {55.4,34,66,23.3};
System.out.println(Arrays.toString(money));
}
}
敲一敲:copyOf的使用
import java.util.Arrays;
public class DemoArraysCopyOf {
public static void main(String[] args) {
int[] ages= {33,18,37,55,3};
int[] newArray1=Arrays.copyOf(ages, 3);
System.out.println("新数组:"+Arrays.toString(newArray1));
int[] newArray2=Arrays.copyOf(ages,8);
System.out.println("新数组:"+Arrays.toString(newArray2));
}
}
使用
copyOf()时,如果指定的副本数组的长度小于源数组的长度,后面的元素都将被截断。如果指定的副本数组的长度大于源数组的长度,多出的元素都将使用默认值。
数组元素默认值
如果一个数组已经指定了长度,但是没有给元素赋值,那么没有赋值的元素都会有默认值。
| 类型 | 默认值 |
|---|---|
String |
null |
int |
0 |
double |
0.0 |
boolean |
false |
Object |
null |
敲一敲:体验各种类型的默认值
import java.util.Arrays;
public class DemoDefaultValue {
public static void main(String[] args) {
String[] name=new String[10];
System.out.println("字符串:"+Arrays.toString(name));
int[] age=new int[10];
System.out.println("整数:"+Arrays.toString(age));
double[] money=new double[10];
System.out.println("小数:"+Arrays.toString(money));
Object[] obj=new Object[10];
System.out.println("对象:"+Arrays.toString(obj));
boolean[] results=new boolean[10];
System.out.println("布尔值:"+Arrays.toString(results));
char[] chrs=new char[10];
System.out.println("字符:"+Arrays.toString(chrs));
System.out.println((int)chrs[0]);//字符对应的整数
}
}
试一试:
1.从控制台中输入5个人的年龄,存入数组中,求出最小的年龄
2.将一组乱序的字符排序后,进行升序和逆序输出
搜索关注公众号「享智同行」,第一时间获取技术干货,关注后回复010 获取本次练习答案!
Java入门系列-10-数组的更多相关文章
- Java 集合系列10之 HashMap详细介绍(源码解析)和使用示例
概要 这一章,我们对HashMap进行学习.我们先对HashMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用HashMap.内容包括:第1部分 HashMap介绍第2部分 HashMa ...
- Java 集合系列 10 Hashtable详细介绍(源码解析)和使用示例
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- 夯实Java基础系列10:深入理解Java中的异常体系
目录 为什么要使用异常 异常基本定义 异常体系 初识异常 异常和错误 异常的处理方式 "不负责任"的throws 纠结的finally throw : JRE也使用的关键字 异常调 ...
- Java入门系列-19-泛型集合
集合 如何存储每天的新闻信息?每天的新闻总数是不固定的,太少浪费空间,太多空间不足. 如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象,可以使用Java集合框架. Java 集合框架提 ...
- Java入门系列之集合ArrayList源码分析(七)
前言 上一节我们通过排队类实现了类似ArrayList基本功能,当然还有很多欠缺考虑,只是为了我们学习集合而准备来着,本节我们来看看ArrayList源码中对于常用操作方法是如何进行的,请往下看. A ...
- Java入门系列(七)Java 集合框架(JCF, Java Collections Framework)
Java 集合概述 List.Set.Map可以看做集合的三大类 java集合就像一个容器,可以将多个对象的引用丢进该容器中. Collection和Map是java集合的根接口. List List ...
- Java入门系列-26-JDBC
认识 JDBC JDBC (Java DataBase Connectivity) 是 Java 数据库连接技术的简称,用于连接常用数据库. Sun 公司提供了 JDBC API ,供程序员调用接口和 ...
- Java入门 第10天 ,理解数组
数组的特点: 1.内容的类型固定,不会int String 两个类型一起,要么是int类型 要么是String类型 或者其他类型. 2.长度是固定的,例:String [ ] myArray = ...
- Java基础系列--04_数组
一维数组: (1)数组:存储同一种数据类型的多个元素的容器. (2)特点:每一个元素都有编号,从0开始,最大编号是数组的长度-1. 编号的专业叫法:索引 (3)定义格式 A:数据类型[] 数组名;(一 ...
随机推荐
- Sobel算法
最近看了一些Sobel算法,并试了一下,源码如下: private void Sobel(Bitmap img) { int width = img.Width; int height = img.H ...
- stream.fail() eof() EOF
ifstream infile("student.dat"); while((c=infile.get())!=EOF){} //EOF的值是-1 但在 #include&l ...
- 在didSelectRowAtIndexPath 里面取cell的方法
1.选中了tableview的cell的某一行调用的代理方法 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(N ...
- 【转】C# String 与 Char[] 数组 相互转换
源地址:http://blog.csdn.net/razilfelix/article/details/52289663 string 转换成 Char[] string ss = "abc ...
- 八大排序算法的python实现(五)堆排序
代码 #coding:utf-8 #author:徐卜灵 # 堆排序适用于记录数很多的情况 #与快速排序,归并排序 时间复杂一样都是n*log(n) ######################### ...
- Hibernate的工作流程以及三种状态
Hibernate的工作流程: 1. 读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3. 打开Sesssion 4.创建事务Transation 5. 持久化操作 6. ...
- 获取表单提交的数据getParameter()方法
请求对象:request public String getParameter(String name); 通过request的getParameter(String name)方法获取 表单里面的n ...
- 关于 SimpleMembership 中 CreateDate 的问题
使用 WebMatrix.WebData.WebSecurity.CreateUserAndAccount(model.UserName, model.Password, ...
- Mac的Parallels在启动Win的时候让它独立全屏窗口
这里备忘一下,由于经常需要***,Win方法比较多少,所以使用Parallels在Win下***还是很有必要的,为了使用使用方便,一般让Parallels启动系统之后自动生成一个独立的全窗口,方便来回 ...
- Win7电脑开机无法正常启动只能进入安全模式解决方式
我们先尝试在开机的时候按F8进入安全模式,进入到安全模式后一次打开“控制面板”-“程序与功能”,然后将卡巴斯基卸载[ http://jingyan.baidu.com/article/ff42efa9 ...