数组
本次课程重点是数组的应用。
这里首先要对数组有一个概念上的认识:数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。(以上参考专业资料)
以我所理解来看,数组就是开辟N个单元将N个不同的但是类型相同的元素存入,方便后续调用的这么一个工具。数组的类型除了上述所说的几种外,还有自己定义的类型。
然后,我们需要明白数组定义的方法,这里一一维数组的定义为例:类型[] 数组名=new 类型[数组长度];
这里举一个简单的一维整型数组的应用例子
public class Shuzu {
public static void main(String[] args) {
int[] in=new int[5];
for(int i=0;i<5;i++){
in[i]=100*i;
}
for(int i=0;i<5;i++){
System.out.println("第"+i+1+"个数是:"+in[i]);
}
}
}
这个简单的例子是考察数组的定义,数组的赋值以及数组的调用.
接下来,是一个自定义类数组的例子,这里先定义一个Student的类:public class Student {
public String name;
public int num;
}
主函数如下:
public class Shuzu2 {
public static void main(String[] args){
Student[] stu=new Student[5];
for(int i=0;i<5;i++){
Student st=new Student();
stu[i]=st;
stu[i].name="lps";
stu[i].num=i+1;
}
for(int i=0;i<5;i++){
System.out.println("第"+(i+1)+"个学生的姓名是"+stu[i].name+" 学号是"+(i+1));
}
}
}
在编写以上程序时,本人出现了一些问题:在给类数组赋值时,我曾经想直接赋值: for(int i=0;i<5;i++){
//缺少Student st=new Student();
stu[i].name="lps";
stu[i].num=i+1;
}
这样的话,系统将会报错,这是因为类数组只被声明,但还未开辟内存存放,如此则不能赋值,这也就是Student st=new Student();这句话的作用。
接下来,是一个简单画板实现划线与重绘的功能,将也用到一个类数组,代码如下:
//自定义一个类来存放坐标
public class ZuoBiao {
public int x1,x2,y1,y2;
}
public class ShuzuDraw extends JFrame{
private DrawListener dr;
public static void main(String[] args){
ShuzuDraw jf=new ShuzuDraw();
jf.showFrame();
}
public void showFrame()
{
this.setTitle("简单画板");
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(3);
this.setSize(500, 500);
this.setVisible(true);
Graphics g=this.getGraphics();
dr=new DrawListener(g);
this.addMouseListener(dr);
}
public void paint(Graphics g){
super.paint(g);
for(int i=0;i<dr.Z.length;i++){
ZuoBiao Z[i]=new ZuoBiao;
g.drawLine(dr.Z[i].x1,dr.Z[i].y1,dr.Z[i].x2, dr.Z[i].y2);
}
}
}
public class DrawListener implements MouseListener{
private Graphics g;
private int count=0;
private int x1,x2,y1,y2;
public ZuoBiao[] Z=new ZuoBiao[10];
public DrawListener(Graphics g){
this.g=g;
}
public void mouseClicked(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
x1=e.getX();
y1=e.getY();
}
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
x2=e.getX();
y2=e.getY();
g.drawLine(x1, y1, x2, y2);
ZuoBiao A=new ZuoBiao();
A.x1=x1;
A.x2=x2;
A.y1=y1;
A.y2=y2;
Z[count]=A;
count++;
}
}
这里要注意的问题:在没有给Z[]数组赋值时(即鼠标还没有点击时),数组z是空的,若没有 ZuoBiao Z[i]=new ZuoBiao;则系统将会报空指针的错误!
分享到:
相关推荐
本资源"VBA数组应用实例下载"提供了丰富的实践案例,帮助学习者深入理解和掌握VBA中的数组操作。 在VBA中,数组是一种数据结构,可以存储多个相同类型的数据,通过单一的变量名进行管理。数组分为一维数组、二维...
数组应用实列2.go
"C语言程序设计教程一维数组应用PPT课件.pptx" 本资源是关于C语言程序设计中的一维数组应用的PPT课件。该资源共50页,详细介绍了一维数组的定义、初始化、引用和应用。 一维数组的定义语法形式为:类型名 数组名...
数组应用——一维数组排序; 定义一组无序的整型数列,共10个数值,经过一定的处理,使该数组由大到小排列,并输出到屏幕上。具体要求如下: 定义int型数组arrayorder并赋初值为0,长度为10,以承载该数列; 使用...
java数组应用
这个"数组应用 C语言版"的项目,旨在帮助大学生深入理解和实践数组在实际问题中的应用。 数组是一种存储同类型元素集合的数据结构,它在内存中连续存储。在C语言中,数组的声明通常包含两个部分:数组名和数组大小...
本文将深入探讨“易语言源码”中关于“易语言内存数组应用”的相关知识点,以及如何理解和使用内存数组。 内存数组是程序中存储数据的一种常见方式,它在内存中连续分配空间来存放同一类型的数据。在易语言中,数组...
C++指针及数组应用 C++中的指针类型是一个非常重要的概念,它是C++语言的基础之一。指针类型可以分为两种:静态指针和动态指针。静态指针是指在编译时就确定了内存地址的指针,而动态指针是指在运行时才确定了内存...
在本次的课程设计中,主要涉及了数组的应用,尤其是多维数组的操作,以及链表数据结构的相关知识。首先,我们需要理解数组和链表的基本概念。 数组是一种线性数据结构,它在内存中连续存储相同类型的数据。在本例中...
"cpp.rar_数组应用"这个压缩包文件显然包含了一个关于C++中数组应用的实例,让我们来深入探讨一下这个主题。 数组是C++中存储一组相同类型元素的集合,它们在内存中连续存储。数组的定义格式一般为`类型 名称[大小]...
MATLAB数组应用与程序设计 MATLAB是一个功能强大、编程方便的计算软件,广泛应用于国际各地,但许多新手程序员因为入门太难而止步。本文将带您轻松入门MATLAB数组应用大全,让您快速掌握MATLAB数组应用的基本概念和...
"数组应用&二维数组" 数组是Java编程中的基本数据结构之一,它可以用来存储同类型的多个数据。数组的应用非常广泛,例如求平均值、最大值、字符串输出、倒序输出等。本文将详细介绍数组的应用、排序、查找、使用...
标题“滚动数组应用:POJ 1159”指的是一个关于编程竞赛问题的解决方案,该问题在POJ(Programming Online Judge)平台上被提出。滚动数组是一种优化动态规划算法的技术,通过巧妙地重用和更新已经计算过的状态,减少...
"C语言程序设计教程一维数组应用" 本文档主要介绍C语言程序设计中的数组应用,特别是对一维数组的定义、初始化、元素访问和应用。下面是根据给定的文件信息提取的知识点: 一、数组定义 * 一维数组定义语法形式为...
【数组应用的技巧与方法】是编程领域中一个重要的主题,尤其在数据处理和算法设计中扮演着核心角色。数组是一种线性数据结构,由相同类型的元素集合组成,可以通过索引来访问每个元素。掌握数组的应用技巧和方法对于...
C51单片机C语言编程数组指针和指针数组应用 本文档介绍了C51单片机C语言编程中的数组指针和指针数组应用。在指针变量中存放一个数组或一个函数的首地址可以使程序的概念十分清楚,程序本身也精练,高效。 数组指针...
数组应用实列.go
首先,数组排序是数组应用的基础,也是其他操作的基础。排序操作的目的是将无序的数据元素按照一定的顺序进行排列,常见的排序方法包括交换法和插入法。交换法中,冒泡排序是较为简单和直观的算法,其基本思想是通过...
一维数组应用 ——二分法查找 目录 课程导入 1 清楚并牢记二分法的实现条件 2 理解二分法的实现思路 3 读懂二分法的实现代码 数组的查找——二分法查找 也称拆半查找法,是一种高效的查找方法,前提条件是数组元素...