Java中的数组
① 含义: 相同数据类型的元素集合(使用时主要涉及到数组的定义、初始化、使用等问题);
② 声明:
在使用某一数组之前,必须先声明出它(定义它)。
要点F数组的声明只是表明有此数组,但并未真正地分配出内存空间,因而还必须对它实例化(分配出内存空间)。
③ 实例化数组:
通过为数组分配指定的内存空间来实例化该数组,可采用new来实现(因为Java中的某一数组,其实是Array数组类的对象)。
new 类型 [元素个数]; 即:
数组类型 [ ] 数组名=new 数组类型 [元素个数];
也可: int [ ] Array=new int [10]; //将声明与实例化合二为一;
④ 初始化:
在声明时,可以采用{ … }来赋初值,此时将自动创建出该数组,并将其元素成员赋初值。
int [ ] Array={1,2,3,4,5};
⑤ 使用数组:
使用下标(从0开始到元素个数-1),来引用元素之值。
i nt [ ]=new int[10];
会产生异常ArrayIndexOutofBceundsExcertion(这个错误数据越界)
a[5]=1;
a[-1]=4;
a[10]=2;
⑥ 获取数组中元素个数(数组具有唯一的属性就是Length)
每一个数组即为Array数组类的子类,其父类Array中有一个成员变量length指示数组元素的个数。从而可以利用数组名•length来获得数组中的元素个数。
int a[ ]=new int[10];
a. length; //返回的值将为10;椐此可得到数组中的元素个数;并且可以动态地创建出数组。
int a[]=new int [10] ;
f or(int i=0; i < a.length; i++)
{
System.out.print(a[]+" ");
}
⑦ Java中支持动态大小的数组:
数组的元素个数是通过计算而来的,而非预先定义的。
int arraySize=10;
int myArray[]=new int [arraySize];
⑧ 对象数组:
先定义出数组;再实例化各个元素对象。
Point p[]=new Point[10]; //先定义出数组
for(int i=0; i<10;i++)
{
p[i]=new Point(10, 10); //再实例化各个元素对象
}
⑨多维数组
int[][] dayValue = new int[52][7];
dayValue[10][1] = 100;
int totalLength=dayValue.length;
int rowLength=dayValue[0].length;
应用例:
class TotalProduct
{
public static void main(String[] arguments)
{
int[] denver = {
1 5000006, 18810000, 20752110
};
int[] philadelphia = {
15020000, 18708000, 21348000
};
int[] total = new int[denver.length];
int sum = 0;
for (int i = 0; i < denver.length; i++)
{
total[i] = denver[i] + philadelphia[i];
System.out.println((i + 1993) + " production: " + total[i]);
sum += total[i];
}
System.out.println("Average production: " + (sum / denver.length));
}
}
import java.util.Random; public class test1 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub // Student [] array=test1.creatArray(11); test1.printArray(array); System.out.println("下边是排序后的结果"); test1.xuz(array); test1.printArray(array); } //x选择排序 public static void xuz(Student[] array) { for(int i=0;i<=array.length-1;i++) { int min=i; System.out.print("pp"); for(int j=i+1;j<array.length;j++) if(array[j].getScore() < array[min].getScore()) min=j; //jioahuanshuju Student temp=array[min]; array[min]=array[i]; array[i]=temp; } } //获取姓名以及成绩 public static Student[] creatArray(int length ) { Student [] array= new Student[length]; Random random= new Random(); for(int i=0;i<array.length;i++){ //实例化Student对象,存入到array数组中 Student stu = new Student("姓名"+i,random.nextInt(10)); //讲stu对象添加到数组中 array[i] = stu; } return array; } //打印名单 public static void printArray(Student [] array) { for(int i=0;i<array.length;i++){ Student stu = array[i];//获取数组中的数据对象 //输出 System.out.println("姓名:"+stu.getName()+" 学分:"+stu.getScore()); } } }
public class Student { /** * @param args */ private String name; private int score; private String Number; public Student(String name, int score ) { this.name=name; this.score=score; this.Number=Number; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNumber() { return Number; } public void setNumber(String number) { Number = number; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } //重写tostring public String toString() { return " 学号:"+Number+"姓名:"+name +"学分"+score; } }
二维数组的代码
import java.util.Random; /** * 二维数组的使用类 * * */ public class test2 { static int r; static int g; public static void main(String[] args) { //调用创建二维数组的方法 int [][] array = test2.createArray(4,4); test2.printArray(array); //调用求取最大值的方法 test2.maxArray(array); } /* * 创建二维数组的方法 * @param row表示二维数组的行 * @param column表示二维数组的列 * */ public static int[][] createArray(int row,int column){ //实例化一个int类型的数组对象 int [][] array = new int[row][column]; //实例化一个随机数类的对象 Random random = new Random(); //循环控制 for(int i=0;i<array.length;i++){ for(int j=0;j<array[i].length;j++){ array[i][j] = random.nextInt(200)+300; } } return array; } /** * 关于寻找最大质值的坐标的 *设置对整个数组的查询 */ public static void maxArray(int[][] array) { //实例化一个随机数类的对象 int max=array[0][0]; //循环控制 for(int i=0;i<array.length;i++){ for(int j=0;j<array[i].length;j++){ if(max<array[i][j]) max=array[i][j]; r=i; g=j; } } System.out.print("最大值是"+max+"坐标是 "+r+g); } /** * 打印二维数组的方法 * @param array要被打印的一位数组对象 */ public static void printArray(int [][] array){ //循环控制 for(int i=0;i<array.length;i++){ for(int j=0;j<array[i].length;j++){ System.out.print(array[i][j]+" "); } System.out.println(); } } }
相关推荐
Java数组是Java编程语言中的基本数据结构之一,用于存储固定数量的同类型元素。了解和熟练掌握数组的使用是学习Java的重要环节。本篇练习题涵盖了数组的基本概念、操作和异常处理,下面是针对题目中涉及知识点的详细...
Java 数组初始化详解 Java 数组初始化是 Java 编程语言中的一种基本概念,它允许开发者创建和初始化数组,以便于存储和操作数据。在本文中,我们将对 Java 数组初始化进行详细的介绍,包括一维数组和二维数组的声明...
### Java数组与内存控制 #### 一、Java数组在内存分配方面的知识 ##### 1.1 数组初始化 - **声明数组的时候如何分配内存:** - 在Java中,数组的声明并不直接分配内存,而仅仅是创建了一个数组引用变量。例如: ...
在Java编程中,"Java数组版ATM"项目是一个典型的面向对象设计实例,它通过数组来模拟自动取款机(ATM)的功能。这个项目旨在教授如何利用Java语言中的类、对象、数组以及相关的面向对象设计原则来实现一个简单的银行...
Java数组越界问题实例解析 在Java中,数组是一种非常重要的数据结构,它广泛应用于各种场景中。然而,在使用数组时,开发者最容易遇到的问题之一就是数组越界问题。数组越界问题是指在访问数组时,索引值超出了数组...
Java数组教案 Java数组是Java编程语言中的一种重要数据结构,用于存储和处理一组数据。在本教案中,我们将详细介绍Java数组的声明、表示、赋值和内存分配,帮助学生掌握数组的基本概念和应用。 一、数组的声明和...
### Java数组和字符串详解 #### 实验目标与背景 本次实验旨在深化理解Java中的数组与字符串操作,聚焦于`String`类与`StringBuffer`类的掌握,包括它们的常用方法、相等性判断的不同方式、数组的创建及引用机制,...
通过`com.bruceeckel.util`包中的工具类,我们可以更加高效和便捷地处理Java数组,提高代码的可读性和维护性。学习和熟练掌握这些数组函数,对于提升Java编程能力是非常有帮助的。在实际开发中,我们应该充分利用...
以上内容涵盖了Java数组求和计算的基本知识以及相关的扩展话题。理解并掌握这些知识点对于进行有效的Java编程至关重要。在实际应用中,根据具体需求,可能还需要考虑性能优化、异常处理等方面的问题。
Java数组扩容的原理 1)Java数组对象的大小是固定不变的,数组对象是不可扩容的。 2)利用数组复制方法可以变通的实现数组扩容。 3)System.arraycopy()可以复制数组。 4)Arrays.copyOf()可以简便的...
【Java数组】是Java编程语言中基础且重要的数据结构,它允许存储固定数量的相同类型的数据。数组在Java中属于引用类型,也就是说数组本身是一个对象,数组中的每个元素相当于这个对象的成员变量。数组可以包含任何...
Java数组倒置是一个常见的编程操作,它涉及到对数组元素顺序的反转。在Java中,数组是一种数据结构,用于存储同一类型的多个元素。数组倒置,也就是将数组中的元素顺序从后往前排列,使得原数组的第一个元素变为最后...
46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip...
43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip...
22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组...
20.java数组空间分配.zip20.java数组空间分配.zip20.java数组空间分配.zip20.java数组空间分配.zip20.java数组空间分配.zip20.java数组空间分配.zip20.java数组空间分配.zip20.java数组空间分配.zip20.java数组空间...
### Java数组基础与典型应用详解 #### 一、数组的概念及基本使用 数组是Java中最基本的数据结构之一,用于存储固定大小的同类型元素集合。它允许程序员在单个变量中存储多个相同类型的数据项,这极大地提高了数据...