`
殇瓶-MIN
  • 浏览: 8452 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

JAVA基础——数组

阅读更多

JAVA基础——数组

近来写的几个小项目,都是使用数组来存储数据的。恰巧现在还没有写数组的相关博文。在这篇博文中将会总结JAVA中数组的相关概念信息。

数组是指一组数据的集合,数组中的每个数据称为元素。数组通过new关键字创建对象,因此JAVA中数组可以理解为引用类型,即在栈中定义引用变量,在堆中创建内存空间。数组是一种线性的数据结构,在堆中开辟的内存空间是连续的,并且在创建的同时就确定数组对象存储的数据类型和长度,外部可以访问数组对象的length属性,但无法修改。数组变量在引用一个对象之后才能通过数组下标访问其中的元素。

 

/**
 *  定义一个类型ArratTest类型,在主函数中使用数组
 * @author Daily
 *
 */
public class ArrayTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 一维数组的声明方式
//		int [] a;	// 数据类型 [] 变量名
//		int b[];	// 数据类型 变量名 []
		// 二维数组的声明方式
//		int [][] c;		// 数据类型 [][] 变量名
//		int []d[];		// 数据类型 [] 变量名 []
//		int e[][];		// 数据类型 变量名 [][]
		/*注意!!!在声明数组的时候不能指定数组的长度,即在中括号中加上数字是错误的!!!*/
		
		// 定义数组
		int [] a = new int [5];	// 创建的同时为每个数组元素赋予其数据类型的默认值
		int [] b = {1,2,3,4,5};	// 为每一个数据初始化值,根据所给数据个数,创建数组长度
		int [] c = b;			// 创建引用变量c,应存入b在内存中的首地址
		/* 创建多维数组时,必须按照从低维到高维的顺序创建每一维数组 */
		int [][] d = new int [2][3];	// 创建多维数组时,每个中括号中的数据都应填写完整
	}

}

     数组的应用:数组排序界面的绘制

import java.awt.Color;
import java.awt.event.ActionEvent;

/**
 *  定义一个动作监听器,实现ActionListener接口
 * @author Daily
 *
 */
public class ArraySoAcLis implements java.awt.event.ActionListener{
	// 声明属性
	private java.awt.Graphics g;
	
	/**
	 *  重写ArraySoAcLis的构造方法
	 * @param g		画笔对象
	 */
	public ArraySoAcLis(java.awt.Graphics g){
		this.g = g;
	}
	
	/**
     * Invoked when an action occurs.
     */
    public void actionPerformed(ActionEvent e){
        // 创建一个随机数对象
    	java.util.Random ran = new java.util.Random();
        // 创建一个长度为9的数组
    	int [] A = new int [9];
        // 初始化数组中的元素
    	for (int i=0; i<A.length; i++){
    		A[i] = ran.nextInt(100);
    	}
    	String sort = e.getActionCommand();	// 获取按钮上的文本信息
    	// 清空上次绘制的内容
        g.clearRect(50, 60, 700, 600);
    	// 判断按钮上的文本信息,并进行处理
    	if (sort.equals("insert")){
    		insert_sort(A);
    	} else if (sort.equals("bubble")){
    		bubble_sort(A);
    	}
    }
    
    /**
     *  插入排序的方法
     * @param A	待排序数组
     */
    public void insert_sort(int [] A){
    	// 将需要排序的数组绘制出来
    	g.setColor(Color.BLACK);
    	g.drawString("插入排序:", 50, 100);
    	g.setColor(Color.YELLOW);
    	g.fillOval(114, 85, 25, 25);
    	for (int i=0; i<A.length; i++){
    		g.setColor(Color.BLACK);
    		g.drawString(Integer.toString(A[i]), 120+i*50, 100);
    	}
    	
    	// 将排序中的数组绘制出来
    	for (int i=1; i<A.length; i++){
    		for (int j=i; j>0; j--){// 将未排序的一个值放入已排序的                                         //最后一个位置,重新排序
    			if (A[j]<A[j-1]){
                        // 交换这两个元素的值
    				int w;
    				w = A[j];
    				A[j] = A[j-1];
    				A[j-1] = w;
    			}
                        // 绘制已经排好序的元素
    			g.setColor(Color.YELLOW);
    	    	g.fillOval(114+j*50, 85+i*50, 25, 25);
    	    	g.setColor(Color.BLACK);
    			g.drawString(Integer.toString(A[j]), 120+j*50, 100+i*50);
    		}
    		// 未排序的数字
    		for (int j=A.length-1; j>i; j--){
                // 绘制未排序的元素
    	    	g.setColor(Color.BLACK);
    			g.drawString(Integer.toString(A[j]), 120+j*50, 100+i*50);
    		}
                // 绘制第一个元素
    		g.setColor(Color.YELLOW);
        	g.fillOval(114, 85+i*50, 25, 25);
        	g.setColor(Color.BLACK);
    		g.drawString("第   "+i+"   次:   "+Integer.toString(A[0]), 50, 100+i*50);
    	}	
    }
    
    /**
     *  冒泡排序方法
     * @param A	待排序数组
     */
    public void bubble_sort(int [] A){
    	// 将需要排序的数组绘制出来
    	g.drawString("冒泡排序:", 50, 100);
    	for (int i=0; i<A.length; i++){
    		g.drawString(Integer.toString(A[i]), 120+i*50, 100);
    	}
    	// 将排序中的数组绘制出来
    	for (int i=0; i<A.length; i++){
    		if (i<A.length-1){
    			g.setColor(Color.YELLOW);
            	g.fillOval(114+i*50, 85+(i+1)*50, 25, 25);
            	g.setColor(Color.BLACK);
    			g.drawString("第   "+i+"   次:   ", 50, 100+(i+1)*50);
    			for (int j=A.length-1; j>i; j--){// 将值较小的元素与前面的元素进行交换
    				if (A[j]<A[j-1]){
    					int w;
    					w = A[j];
    					A[j] = A[j-1];
    					A[j-1] = w;
    				}
                                // 绘制未排好序的元素
    				g.drawString(Integer.toString(A[j]), 120+j*50, 100+(i+1)*50);
    			}
    		}
    		// 绘制前面排好序的数据
    		for (int j=0; j<i; j++){
    			if (i<A.length-1){
    			g.setColor(Color.YELLOW);
            	g.fillOval(114+j*50, 85+(i+1)*50, 25, 25);
            	g.setColor(Color.BLACK);
    			}
    			g.drawString(Integer.toString(A[j]), 120+j*50, 100+i*50);
    		}
    	}	
    }

 

分享到:
评论

相关推荐

    java基础——数组及其应用(csdn)————程序.pdf

    Java中的数组是一种基础且重要的数据结构,它允许存储相同类型的数据集合,并且这些数据按照一定的顺序排列。数组的声明和创建是使用Java编程时的常见操作。声明数组变量的语法有两种形式,例如: ```java dataType...

    java——数组.xmind

    一维数组概念:一组连续的存储空间,存储多个相同数据类型的值。数组的创建。数组的组成。数组的遍历。数组的默认值。

    动力节点老杜Java基础入门学习教程分享——数组

    ### 动力节点老杜Java基础入门学习教程分享——数组 #### 数组概要 数组是一种重要的数据结构,被广泛应用于各种编程语言中,包括Java。数组是一种引用数据类型,用于存储固定数量的同类型元素。在内存中,数组是...

    第10章成绩统计——数组与字符串.ppt

    在编程领域,数组是一种基础且重要的数据结构,用于存储同类型的数据集合。在Java中,数组具有固定大小,一旦创建,长度便不可更改。本章主要讲解了如何使用数组进行成绩统计,涉及到了一维数组、多维数组、数组操作...

    《Java数据结构和算法》学习笔记(1)——数组 二分法 大O表示法

    总之,掌握数组、二分法和大O表示法是成为优秀Java程序员的基础。理解这些概念及其应用,可以帮助我们编写更高效、更具可维护性的代码,同时也能更好地理解和分析已有的开源工具和源码。在实际工作中,这些知识将助...

    Java语言程序设计讲义——数组与字符串

    这一款整理发布的Java语言程序设计讲义——数组与字符串,适用于日常学习、参考、借鉴Java语言...该文档为Java语言程序设计讲义——数组与字符串,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看

    java基础——————试题库

    这份“java基础——————试题库”资源旨在帮助学习者系统地复习和深入理解Java的基础知识,确保他们能够全方位地掌握这一强大的编程工具。下面将详细阐述Java的基础知识点。 1. **Java简介** - Java是由Sun ...

    Java程序设计基础:数组的概念.pptx

    采用另一种变量结构,能存放批量数据——数组。 数组的基本概念 数组是一种数据结构,在内存中连续存放。 用来存放相同数据类型的批量数据。 a 0 1 2 3 4 5 6 7 8 9 数组的基本概念 数组是一组名字相同下标不同,...

    java代码-使用java解决输出数组中加起来最大两个元素的值的源代码

    java代码-使用java解决输出数组中加起来最大两个元素的值的源代码 ——学习参考资料:仅用于个人学习使用!

    java 数据结构 数组 向量 字符串

    本文将深入探讨三种基本的数据结构——数组、向量和字符串,它们在Java开发中占据着核心地位。 #### 一、数组 数组是Java中最基础的数据结构之一,用于存储固定大小的同类型元素集合。数组可以在一维或多维中定义...

    Java数组,Java数组,多线程编程

    3. **守护线程和用户线程**:Java区分两种类型的线程——用户线程(非守护线程)和守护线程。守护线程不阻止程序退出,而用户线程则会。 4. **线程同步**:为了防止多线程环境中的数据竞争,Java提供了`...

    java基础——IO流及File-RandomAccessFile对象.docx

    ### Java基础——IO流及File、RandomAccessFile对象 #### IO流概述 在Java中,IO流主要用于处理设备上的数据,这里的“流”可以被理解为数据的流动过程,即数据从一个地方移动到另一个地方的过程。Java中的IO流通过...

    Java基础练习之数组的应用——ATM Demo

    在这个"Java基础练习之数组的应用——ATM Demo"项目中,我们将会深入探讨如何利用数组和方法来实现一个简单的自动取款机(ATM)模拟程序。这个练习旨在帮助初学者巩固Java基础知识,特别是对数组的操作和方法的使用...

    java数组排序

    在Java编程语言中,数组排序是一项基础且重要的任务。它涉及到不同的算法,这些算法通过比较和交换元素来达到数组元素的有序状态。本篇将详细探讨几种常见的排序算法及其在Java中的实现。 首先,让我们从最简单的...

    JAVA教程——PDF

    ### JAVA教程——PDF:基础知识概览 #### Java语言:历史与发展 Java,源自Sun公司的创新,最初名为Oak,旨在为家用电子产品开发一个分布式代码系统,让日常设备如电冰箱、电视机具备网络通信能力。然而,由于C++...

    java课件——全面介绍java知识

    这个"java课件——全面介绍java知识"提供了一套完整的Java学习资源,旨在帮助初学者和进阶者深入理解和掌握Java编程技术。 首先,让我们从基础开始。Java的核心概念包括类、对象、封装、继承、多态。类是对象的模板...

    java--数组.txt

    Java中的数组也拥有一个对应的类——`Class`,可以通过调用数组的`getClass()`方法来获取该数组对应的`Class`对象。例如: ```java MyClass[] arr = new MyClass[9]; Class&lt;?&gt; clazz = arr.getClass(); ``` 通过...

    java——基础程序设计

    Java 基础程序设计是 Java 编程语言的基础知识,包括 Java 语言的基本知识、Java 控制语句、Java 循环语句、Java 数组等。 一、Java 语言基础知识 Java 语言是一种面向对象的编程语言,由 James Gosling 等人在 ...

    java程序控制与数组 详解 java实例20

    本文将深入探讨这两个主题,并通过一个具体的实例——"java程序控制与数组 详解 java实例20"来进一步阐述。 首先,让我们了解程序控制。在计算机科学中,程序控制指的是如何决定代码的执行流程。它包括三大基本结构...

Global site tag (gtag.js) - Google Analytics