概述
数组是Java中最基础的一个知识,在学习Java数组的时候只是简单的学习了怎么创建数组,使用数组;下面我将详细的解释数组:
一、
1.数组的定义
一维数组:
数据类型[] 数组名称 = new 数据类型[初始化长度大小] {数据1,数据2,....};
例如:
int[] arr = new int[10];
int[] arr = new int[]{1,1,2};
二维数组:
数据类型[][] 数组名称 = new 数据类型[行的长度] [列的长度] { {多个数据},{多个数据(数据长度保持一致)},....};
int data[][]=new int [][]{
{1,2,3},
{4,5,6},
{7,8,9} }
范例:观察二维数组的定义及使用。
public class TestArray1
{
public static void main(String args[]){
int data[][]=new int [][]{
{1,2,3},
{4,5,6},
{7,8,9}
}
//外层循环是控制数组的数据行内容
for(int x=0;x<data.length;x++){
for (int y=0;y<data[x].length ;y++ )
{
System.out.print(data[x][y]+"t");
}
System.out.println();
}
}
}
其他多维数组以此类推;
提示:不能直接使用未开辟空间的数组。
2.数组的简单使用
- 范例:数组的引用传递
public class TestArray
{
public static void mian(String args[]){
int data[]=new int [3];
data[0]=10;
data[1]=20;
data[2]=30;
int temp[]=data;
temp[0]=99;
for (int =0;x<data.length ;x++ )
{
System.out.println(data[x]);
}
}
}
数组本身属于引用数据类型,所以在数组的操作中依然可以进行内存空间的引用传递。
- 数组与方法参数的传递
既然数组内容可以进行引用传递, 那么就可以把数组给方法中的参数. 而如果
一个方法要想接收参数, 则对应的参数类型必须是数组。下面首先通过一道简单的
程序来进行说明
范例: 一个数组传递的程序
public class TestArray2
{
public static void main(String args[]){
int data[]=new int[]{1,2,3};
change(data);
for (int x=0;x<data.length ;x++)
{
System.oout.println(data[x]);
}
}
//此方法定义在主类中,并且由主方法直接调用
public static void change(){
for (int x=0;x<temp.length ;x++ )
{
temp[x]*=2;
}
}
}
是否觉得上面的内容非常的简单,以上只是对数组进行简单的引用传递;
3.面向对象编辑方式
(1)对象数组:
- 数组是引用类型, 而类也同样是引用类型, 所以如果是对象数组的话表示一个引用类型里面嵌套其他的引用类型。
- 在之前使用的数组都属于基本数据类型的数组, 但是所有的引用数据类型也同样可以定义数组, 这样的数组称为对象数组。
如果要定义对象数组(以类为例),可以采用如下格式完成。
• 格式:对象数组的动态初始化
类名称 对象数组名称= new 类名称[长度];
如果使用了对象数组的动态初始化, 则默认情况下, 数组的每一个元素都是其对应的默认值null,
都需要分别进行对象的实例化操作。
• 格式:对象数组的静态初始化
类名称 对象数组名称= new 类名称[]{实例化对象,实例化对象, ..}
范例:对象数组的动态初始化。
//对象数组
class Book
{
private String title;
private double price;
public Book(String t,double p){
title =t;
price=p;
}
public String getInfo(){
return "书名:"+title+",价格:"+price;
}
}
public class TestArray3
{
public static void main(String args[]){
//开辟了一个三个长度的对象数组
Book books[] =new Book[3];
//对象数组中的每个数据都需要分别实例化
books[0]=new Book("Java",69.8);
books[1]=new Book("JSP",79.8);
books[2]=new Book("Android",89.8);
for (int x=0;x<books.length ;x++ )
{
System.out.println(books[x].getInfo());
}
}
}
对象数组的最大好处是将多个对象统一进行管理, 并且除了数据类型改变外. 和之前的数组没有任
何区别, 而且数组本身就属于引用数据类型,因此对象数组就是在一个引用数据类型中嵌入其他引用数
据类型。
(2)使用自定义类封装数组||添加类方法来实现数据操作
package array;
public class MyArray {
private long[] arr;
//表示有效数据的长度
private int elements;
//构造方法
public MyArray() {
arr = new long[50];
}
//重载
public MyArray(int maxsize) {
arr = new long[maxsize];
}
/**
* 添加数据
* */
public void insert(long value) {
arr[elements] = value;
elements ++;
}
/**
* 显示数据
* */
public void display() {
System.out.print("[");
for(int i = 0; i < elements; i++) {
System.out.print(arr[i] + " ");
}
System.out.println("]");
}
/**
* 查找数据
* */
public int search(long value) {
int i;
for(i = 0; i < elements; i++) {
if(value == arr[i]) {
break;
}
}
if(i == elements) {
return -1;
}else {
return i;
}
}
/**
* 根据索引来查找
* */
public long get(int index) {
if(index >= elements || index < 0) {
throw new ArrayIndexOutOfBoundsException();
} else {
return arr[index];
}
}
/**
* 删除数据
* */
public void delete(int index) {
if(index >= elements || index < 0) {
throw new ArrayIndexOutOfBoundsException();
} else {
for(int i = index; i < elements; i++) {
arr[index] = arr[index+1];
}
elements --;
}
}
/**
* 更新数据
* */
public void change(int index, int newvalue) {
if(index >= elements || index < 0) {
throw new ArrayIndexOutOfBoundsException();
} else {
arr[index] = newvalue;
}
}
}
package array;
public class TestMyArray {
public static void main(String[] args) {
MyArray arr = new MyArray();
arr.insert(10);
arr.insert(20);
arr.insert(50);
arr.insert(40);
arr.display();
System.out.println(arr.search(20));
System.out.println(arr.get(0));
//arr.delete(0);
arr.change(0, 30);
arr.display();
}
}
最后
以上就是虚幻硬币为你收集整理的Java数组的应用一、的全部内容,希望文章能够帮你解决Java数组的应用一、所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复