`
海王子1994
  • 浏览: 45211 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java中的数组

 
阅读更多

      谈到数组,大家都在学习C语言中频繁接触到它,自然并不陌生。数组在内存中表现形式为连续的存储空间,长度是从1开始的,但是下标或者索引就是从0开始的,这点需要记住,不然容易造成数组越界的错误。

      对于数组,由于能按照下标数学或者直接指定的下标,我们能快速地访问读取其中的每一个元素;但是数组的内存空间在定义的时候就固定了,不能改变大小,犹如建好的房屋,里面的房间数量已经一定了,不可能再增加。至于数组是属于什么数据类型呢?可以看下图:

 

Java数据类型图(来自网上):
                                             ┏数值型━┳━整数型:byte short int long
              ┏基本数据类型━━┫              ┗━浮点型:float double
              ┃                            ┣字符型:char                                         
数据类型╋                            ┗布尔型:boolean             
              ┃                            ┏类(class)
              ┗引用数据类型━━╋接口(interface)
                                             ┗数组(array)

从图中可以看出数组是属于引用数据类型的一种!

另外,数组只有一个唯一的属性length,即数组长度,表达式如:array.length

 

了解一维数组的使用方法,可以看下下面的代码:

public class ArrayOne {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
          ArrayOne ao=new ArrayOne();//创建对象
          int [] array=ao.creatArray(5);
          ao.printArray(array);//调用打印数组的方法
          System.out.println("\n");
          ao.maoPao(array);//调用数组冒泡的方法
          ao.printArray(array);
          System.out.println("\n");
	}
	
	/*
	 * 创建数组的方法
	 */
	public int [] creatArray(int Size)
	{
		int [] array=new int[Size];//创建一个整型数组
		Random random=new Random();//创建一个随机类对象
		//遍历数组,给数组中赋随机值
		for(int i=0;i<array.length;i++)
		{
			array[i]=random.nextInt(50);//给数组中元素赋0至50之间的随机一个数
		}
		return array;
	}
	/*
	 * 打印数组的方法
	 */
	public void printArray(int [] array)
	{
		//遍历数组,输出数组元素
		for(int i=0;i<array.length;i++)
		{
			System.out.print(array[i]+"\t");//输出元素的值
		}
		
	}
	/*
	 * 数组冒泡排序的方法
	 */
	public int [] maoPao(int [] array)
	{
		//循环遍历数组
		for(int i=0;i<array.length;i++)
		{//j从i+1开始
			for(int j=i+1;j<array.length;j++)
			{
				if(array[i]>array[j])//如果前面的元素大于后面的元素
				{//交换元素
					int temp=array[i];
					array[i]=array[j];
					array[j]=temp;						
					
				}
			}
		}
		return array;
	}

}


 二维数组的使用同样可以参照下面代码:

public class ArrayTwo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        ArrayTwo at=new ArrayTwo();//创建对象
        int [][] array=at.creatArray(5,5);
        at.printArray(array);//调用打印数组的方法
	}
/*
 * 创建数组的方法
 */
	public int [][] creatArray(int row,int column)
	{
		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(50);//赋1到50之间的随机值
			}
		}
		return array;
	}
	/*
	 * 打印数组的方法
	 */
	public 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]+"\t");//输出元素值
				if(j==array[i].length-1)
				{
					System.out.print("\n");
				}
			}
			
		}
		
	}
	
}

 此外,如果想要对一维数组进行排序(不用冒泡法),其中一种方法如下:

 

public class ArraySort {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        ArraySort as=new ArraySort();//创建对象
        int [] array=as.creatArray(10);//调用创建数组的方法
        as.sort(array);//调用数组排序的方法
        as.printArray(array);//调用打印数组的方法
        
	}
/*
 * 创建数组的方法
 */
	public int [] creatArray(int Size)
	{
		int [] array=new int[Size];//创建整型一维数组
		Random random=new Random();//创建随机类对象
		//遍历数组,给数组元素赋随机值
		for(int i=0;i<array.length;i++)
		{
			array[i]=random.nextInt(40);//赋值
		}
		
		return array;
		
	}
	/*
	 * 数组排序的方法
	 */
	public int[] sort(int [] array)
	{
		//遍历数组
		for(int i=0;i<array.length;i++)
		{
			int max=array[i];
			for(int j=i+1;j<array.length;j++)
			{
				if(array[i]>array[j])
				{
					int temp=array[i];
					array[i]=array[j];
					array[j]=temp;
				}
				if(array[j]>max)
				{ //找每次比较后的最大值
					max=array[j];
				}
			}
		}
		return array;
	}
	/*
	 * 打印数组的方法
	 */
	public void printArray(int [] array)
	{
		//遍历数组,输出元素
		for(int i=0;i<array.length;i++)
		{
			System.out.print(array[i]+"\t");//输出信息
			if(i==array.length-1)
			{
				System.out.println();
			}
		}
		
	}
}

 

 

如果你了解二维数组的知识后,可以完成一些相关练习如:二维数组找出最大值,输出每一个最大值所在行和列。

代码如下:

public class FindMax extends ArrayTwo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        FindMax fm=new FindMax();//创建对象
        int [][] array=fm.creatArray(5, 5);//调用创建数组方法
        fm.printArray(array);//调用打印数组的方法
        fm.findMax(array);//调用找最大值的方法
	}
	
    public void findMax(int [][] array)
    {
    	int row = 0,column=0;
    	int max=array[0][0];
    	
    	//循环遍历数组
    	for(int i=0;i<array.length;i++)
    	{
    		
    		for(int j=1;j<array[i].length;j++)
    		{
    			
    			if(max<array[i][j])
    			{
    				max=array[i][j];
    				row=i+1;
    				column=j+1;
    			}
    		}
    	}
    	System.out.println("最大值是"+max+"所在的行是"+row+",列是"+column);
    	findRepeat(array,row-1,column-1);
    	
    	
    }
    /*
     * 寻找重复最大值方法
     */
    public void findRepeat(int [] []array,int row,int column)
    {
    	int m,n;
    	//循环遍历数组
    	for(int i=0;i<array.length;i++)
    	{
    		
    		for(int j=1;j<array[i].length;j++)
    		{
    			
    			if(array[row][column]==array[i][j])
    			{
    				m=i;
    				n=j;
    				m++;
    				n++;
    				System.out.println("最大值是"+array[i][j]+"所在的行是"+m+",列是"+n);
    			}
    		}
    	}
    }

}

 

 

分享到:
评论

相关推荐

    Java中数组的各种应用

    在Java编程语言中,数组是一种基础且重要的数据结构,它允许程序员存储同类型的多个元素。本文将深入探讨Java中数组的各种应用,旨在帮助初学者理解并掌握数组的使用。 一、数组定义与初始化 在Java中,数组可以...

    java中数组的介绍

    java数组的介绍以及怎么用,用在什么地方

    Java中数组常用方法的总结

    我对Java中数组的方法做了一下总结,希望能帮到各位

    java中数组的用法

    array用法

    Java中数组的声明.doc

    ### Java中数组的声明 #### 一、一维数组的声明与创建 在Java中,数组是一种特殊的数据结构,用于存储相同类型的多个元素。数组在内存中是连续存储的,并且...希望本文能够帮助读者更好地掌握Java数组的相关知识。

    JAVA中数组的定义.doc

    Java中的数组是一种特殊的变量,它能够存储同一类型的多个值,这些值通过索引来访问。数组在Java中扮演着基础且重要的角色,它们是程序中数据结构的基础构建块。以下是关于Java中数组的详细说明: 一、一维数组的...

    java中数组的定义及使用方法详解.pdf

    Java 中数组的定义及使用方法详解 数组是 Java programming 语言中的一种基本数据结构,用于存储一组相关的变量。数组可以是一维数组、二维数组或多维数组,数组的每个元素的数据类型都是相同的。使用数组可以避免...

    Java中数组与集合的相互转换实现解析

    Java中数组与集合的相互转换实现解析 Java中数组和集合是两种不同的数据结构,数组是一种固定长度的数据结构,而集合是一种可变长度的数据结构。它们之间的转换是非常重要的,在实际开发中经常会遇到这种情况。...

    JAVA中数组的访问是如何进行的呢.txt

    1. **类型一致性**:数组中的所有元素必须具有相同的类型,无论是基本数据类型(如`int`, `double`)还是引用类型(如`String`, `Object`)。 2. **长度固定**:一旦数组被创建,其长度就不可更改。这意味着在创建...

    java中数组列表ArrayList的使用.doc

    这个方法把 ArrayList 的元素 Copy 到一个新的数组中。 在使用 ArrayList 时,需要注意线程同步的问题,如果使用非线程同步的实例,那么在多线程访问的时候,需要自己手动调用 lock 来保持线程同步。同时,...

    java中数组查找的常见算法

    java中数组查找的常见算法

    Java数组练习题(带答案).doc

    Java数组是Java编程语言中的基本数据结构之一,用于存储固定数量的同类型元素。了解和熟练掌握数组的使用是学习Java的重要环节。本篇练习题涵盖了数组的基本概念、操作和异常处理,下面是针对题目中涉及知识点的详细...

    Java中数组的定义与使用

    Java中数组的定义与使用

    Java中数组和对象数组的区别是什么.txt

    Java中数组和对象数组的区别是什么.txt

    Java中数组实例---一维数组.pdf

    在Java编程语言中,数组是一种特殊的数据结构,用于存储同一类型的数据集合。在这个文档中,我们专注于一维数组的实例,主要探讨了如何创建、初始化和输出一维数组的元素。以下是详细的知识点解析: 1. **数组声明*...

    Java中数组反转与多线程应用深度解析

    本文详细介绍了Java中数组反转的几种方法,并探讨了如何使用多线程技术来优化数组反转过程。通过合理地设计多线程任务和同步机制,可以显著提高数组反转的效率。这些技术的应用不仅限于数组反转,还可以扩展到其他...

    讲述Java中数组的基本使用以及简单排序_Array.zip

    讲述Java中数组的基本使用以及简单排序_Array

    java中数组

    主要介绍了java中数组的使用,适合理不清概念的读者使用,还有些关于栈、堆的使用。

    java数组结构图

    对数组的总结和分析,通过这个结构记住它,在开发的过程中使用

Global site tag (gtag.js) - Google Analytics