`

对java中数组的个人理解

 
阅读更多

明确概念:

既然说到了数组,首先,我们先明确一下数组的概念:相同数据类型的元素按一定顺序排列的集合。
                                                                                      Java中,数组元素可以为简单数据类型,也可以为对象。
那么,既然是相同数据类型的元素的排列,那么他们在内存中的存放也是按照这个先后顺序的。

 

定义方式:
java中数组一般是要先声明,后创建空间,然后再创建数组元素并赋值。
其定义的方式有四种:


 数据类型[ ] 数组名;             //声明一维数组
 数组名=new 数据类型[个数];//动态分配内存给数组
 
 数据类型[ ] 数组名= new 数据类型[个数];
 
 数据类型[ ] 数组名= new 数据类型[个数]{"赋初值"};
 
 数据类型[ ] 数组名;             //声明一维数组
 数组名=new 数据类型[个数]{"赋初值"};//动态分配内存给数组
 
数组的方法:
 数组里面只有一个唯一的方法,就是length

两个练习:

1.一维数组的各种排序方法

package 数组;

import java.util.Random;

public class Kindsort {

	/**
	 * 各种排序方法
	 */
	public static void main(String[] args) {
		
		Kindsort sort = new Kindsort();
		
		//在这里使用下面的方法即可
		sort.quick();
		System.out.println("===========================================");
		sort.shellsort();
		System.out.println("===========================================");
		sort.insort();
		System.out.println("===========================================");
		sort.selectsort();
		
	}
	
	//人工快速排序
	private void quick() {
		int[] array = new int[5];
		
		for(int i=0;i<5;i++){
			Random rand = new Random();
			array[i]=rand.nextInt(500);
		}
		
		for(int i=0;i<5;i++){
			for(int j=0;j<5;j++){
				int temp =array[i];
				if(temp <= array[j]){
					array[i] = array[j];
					array[j] = temp;
				}else{
					continue;
				}
			}
		}
		for(int i=0;i<5;i++){
			System.out.println(array[i]);
		}
	}

	//希尔排序
	private void shellsort() {

		int[] array = new int[5];
		
		for(int i=0;i<5;i++){
			Random rand = new Random();
			array[i]=rand.nextInt(500);
		}
		
		for (int in = array.length / 2; in > 0; in /= 2) {
			for (int i = in; i < array.length; i++) {
				int t = array[i];
				int j = 0;
				for (j = i; j >= in; j = j - in) {
					if (t < array[j - in]) {
						array[j] = array[j - in];
					} else {
						break;
					}
				}
				array[j] = t;
			}
		}
		for (int i = 0; i < array.length; i++)
			System.out.println(array[i] + "\t");
	}

	//插入排序
	private void insort() {
		int[] array = new int[5];
		
		for(int i=0;i<5;i++){
			Random rand = new Random();
			array[i]=rand.nextInt(500);
		}
		
		for (int i = 1; i < array.length; i++) {
			for (int j = i; j > 0; j--) {
				if (array[j] < array[j - 1]) {
					int t = array[j];
					array[j] = array[j - 1];
					array[j - 1] = t;
				}
			}
		}
		for (int i = 0; i < array.length; i++)
			System.out.println(array[i] + "\t");
	}

	//选择排序
	private void selectsort() {
		int[] array = new int[5];
		
		for(int i=0;i<5;i++){
			Random rand = new Random();
			array[i]=rand.nextInt(500);
		}
		
		for (int i = 0; i < array.length; i++) {
			int min = i;
			for (int j = i + 1; j < array.length; j++) {
				if (array[min] > array[j])
					min = j;
			}
			int t = array[i];
			array[i] = array[min];
			array[min] = t;
		}
		for (int i = 0; i < array.length; i++)
			System.out.println(array[i] + "\t");
	}
	
	
}

 

2.找出二维数组的最大值

package 数组;

import java.util.Random;

//算二维数组的最大值

	public class Findsort{
		public static void main(String args[]){
			int a[][]=new int[2][5];
			Random rand=new Random(); 
			for(int i=0;i<2;i++){
				for(int j=0;j<5;j++){
					a[i][j]=rand.nextInt(30);
					System.out.println("a["+i+"]["+j+"]="+a[i][j]);
				}
			}
			int max;
			Findsort p=new Findsort();
			max=p.maxv(a);
			System.out.println("max="+max);
		}
 
		public int maxv(int arr1[][]){
			int i,j,max;
			max=arr1[0][0];
			for(i=0;i<arr1.length;i++)
				for(j=0;j<arr1[i].length;j++)
					if(arr1[i][j]>max)
						max=arr1[i][j];
			return max;
		}
	}

 

 

1
1
分享到:
评论

相关推荐

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

    在Java编程语言中,数组是一种特殊的数据结构,用于存储...通过这个实例,我们可以深入理解Java中一维数组的创建、初始化和遍历的基本概念,这对于后续学习更复杂的数组操作,如多维数组和数组操作函数,奠定了基础。

    java类与数组个人作业.pdf

    通过对以上实验的学习,我们可以更深入地理解 Java 中字符串和数组的基本操作。特别是对于字符串,我们不仅学习了如何使用 String 类进行各种字符串处理操作,还掌握了 StringBuffer 类的动态字符串操作能力。此外,...

    第四讲java数组和字符串.doc

    数组的大小一旦被创建不能改变,如果需要对数组的大小进行扩展,通常需要使用另一种数据对象:Vector。 数组的初始化可以在声明数组的同时给数组一个初始值,例如:int num [ ] = {2, 4, 4, 1};创建数组后,系统会...

    java从键盘输入 对象数组 数组对象成员排序

    在Java编程中,从键盘输入数据并进行对象数组的排序是一项常见的操作,尤其对于初学者来说,这有助于理解和掌握面向对象编程的基本概念。本篇将详细介绍如何实现这一过程。 首先,我们需要创建一个对象类,例如我们...

    12道不错的数组例题

    数组是编程语言中基础且重要的数据结构之一,对于初级JAVA学习者来说,理解和掌握数组的用法至关重要。这里我们有12道精选的数组例题,它们可以帮助你深入理解Java中的数组概念及其应用。 1. **数组定义与初始化**...

    Java二维数组实战案例

    Java二维数组实战案例 Java二维数组是一种非常重要的数据结构,在Java编程中广泛应用于数据存储和处理。本文将详细介绍Java二维数组的定义...通过本文的介绍和实战案例,读者可以更好地理解和掌握Java二维数组的使用。

    Java数组的声明与创建示例详解

    本文将深入探讨Java数组的声明和创建过程,通过具体示例以及相关的概念解析,帮助读者更好地理解和掌握数组的相关知识。 首先,要掌握Java数组的声明方式。数组变量的声明涉及到指定数组元素的数据类型以及数组变量...

    Java数组的基本操作方法整理

    Java数组是程序设计中不可或缺的基础概念,主要用于存储一组相同类型的元素。在Java中,数组是一种对象,它提供了按索引访问数据的能力,索引通常是从0开始的。本篇文章将详细解析Java数组的基本操作方法。 1. **...

    有关数组的一点个人笔记

    在编程世界中,数组是一种非常基础且重要的数据结构,它在Java编程语言中扮演着核心角色。本笔记主要关注Java中的数组概念、操作以及在实际编程中的应用,非常适合初学者进行学习和练习。 首先,我们要了解什么是...

    JAVA个人资料JAVA

    在JAVA编程领域,个人资料可能涉及的是开发者的技能集、项目经验以及对Java技术的深入理解。以下将根据提供的文件名来详细解析相关的Java知识点: 1. **Java总结.doc**:这可能是对Java语言核心概念的全面概述,...

    推荐课程 完整版优质java教程 java精品教学课件 Java语言程序设计 第5章 数组(共58页).ppt

    数组在Java中是一个非常基础且重要的数据结构,它允许程序员存储和管理多个同类型的元素。数组分为一维数组和多维数组。 1. 一维数组:一维数组类似于一个线性的列表,每个元素通过一个下标(索引)来访问。声明一...

    java学习笔记(排序,数组)

    在本Java学习笔记中,我们将深入探讨数组和排序算法这两个核心概念,它们是任何程序员学习Java编程时的...希望这份笔记能对你的学习有所帮助,同时提供的两个文件格式不同,你可以根据个人喜好选择阅读方式,加深理解。

    List转换成String数组

    在Java编程中,我们经常需要对集合进行操作,尤其是在处理大量字符串数据时。本文将详细介绍如何将一个`List&lt;String&gt;`类型的集合转换为`String[]`数组,并通过不同的方法来实现这一过程。这不仅有助于提高代码的...

    一个用java写的个人所得税计算程序

    对于初学者来说,分析和理解这样的程序源码,可以提升对Java语言的理解,同时了解实际的业务需求如何转化为代码。 总之,这个Java编写的个人所得税计算程序涉及到的核心知识点有:命令行交互、基础的数学计算、面向...

    java源码包---java 源码 大量 实例

    Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印  util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、...

    java实现个人所得税的编程

    在Java中,我们可以用数组或者HashMap来存储这些数据。 接着,我们将设计一个计算个人所得税的函数。输入参数为个人的总收入,函数会遍历税率表,对每个收入段进行计算,将超出部分按相应税率纳税,累积计算出总...

    使用Java理解程序逻辑PPT

    **Java编程语言与程序逻辑** Java是一种广泛使用的高级编程语言,以其“一次编写,到处运行”的跨平台特性而闻名。...对于每一个主题,深入学习和理解其背后的原理和应用,将有助于提升个人的编程技能和问题解决能力。

    编写Java个人档案

    在第一章“初识Java”中,我们将更深入地学习Java的基本语法,包括变量、运算符、流程控制语句(如if、for、while)以及数组。此外,我们还会探索Eclipse的更多功能,如代码自动完成、重构和错误检查,以提高开发...

    java链表 个人总结

    理解了Java的链表,就能轻松理解其他语言中的链表实现,并进行跨语言的开发。 总的来说,理解和掌握Java链表对于任何Java开发者来说都是必要的,无论是为了优化算法效率,还是为了更好地进行多语言编程。通过阅读...

Global site tag (gtag.js) - Google Analytics