`
womendu
  • 浏览: 1480918 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

java中数组的相关操做

 
阅读更多
数组是相同类型变量的集合,可以使用共同的名字引用它。数组是一种特殊的数据类型,有以下的特点,一个数组所有的元素都是同一种数据类型,数组中的元素是有顺序的,数组的一个元素通过数组名和数组下标来确定。我想这几个特点我们都知道,我们学其他的语言时候,已经都知道了,但是java的数组和其他语言还是有不同的地方,在java中每一行的元素个数可以是不同的。
数组的创建需要两个步骤,1:声明一个数组;2:创建一个数组。在这里说明一下,什么一个数组,只是给声明的数组名分配了空间,并没有真正的数据。当我们创建一个数组时候,才将这个数组存储数据的地址指向数据的声明的名字。在java中数组可以是任意数据类型的。数组可以在创建的时候进行初始化,也可以在创建了之后对其初始化。下面就举例说明创建一个行列不等的二维数组。
int[][] arr = new int[3][];
arr[0] = new int[1];
arr[1] = new int[2];
arr[2] = new int[3];//具体的赋值读者自己实现
这样就创建了一个三行,第一行一个数据,第二行两个数据,第三行三个数据的int数组arr。
在Java中,所有的数组都有一个缺省的属性length,用于获取数组中元素的个数。在数组中我们用的比较多的就是后面的几个操做:1、数组的复制:System.arraycopy();2、数组的排序:Arrays.sort();3、在已排序的数组中查找某个元素:Arrays.binarySearch()。
下面先介绍System.arraycopy()方法,在java的帮助文档中:
public static void arraycopy(Object src,
int srcPos,
Object dest,
int destPos,
int length)
从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。从 src 引用的源数组到 dest 引用的目标数组,数组组件的一个子序列被复制下来。被复制的组件的编号等于 length 参数。源数组中位置在 srcPos 到 srcPos+length-1 之间的组件被分别复制到目标数组中的 destPos 到 destPos+length-1 位置。
在运用这个方法的时候,注意数组复制的时候不要越界,比如我们数组中只有八个数据,但是我们赋值的时候长度写了九个,或者我们复制到的目的数组不能放下源数组想要赋值的数据,这样都会报出一个异常。还有一点需要注意,在java中的区间都是左开右闭的,比如我们写8到10,返回的结果是8和9。 下面有一个例子:
int[] num1=new int[]{1,2,3};
int[] num2=new int[10];
System.arraycopy(num1,1,num2,8,2);
for(int i=0;i<num2.length;i++)
{
System.out.println(num2[i]);
}
但是需要注意的如果数组是一个对象数组,在复制的时候,复制的数组的引用,虽然表面看着是复制出来了两个数组,但是操做的确实同一个地址空间中的数据,所以如果修改一个数组中的数据,同样也会影响另一个数组,这个大家自己写代码去实验。
在java中对于Arrays.sort()和arrays.bianrySearch()都进行了重载,大家可以自己参考java帮助手册去学习,注意一点,搜索函数是对一个已经排好序的数组进行搜索,所以这两个函数应该是配合使用的。下面我们举一个对象数组排序的例子(对象数组排序需要先实现Comparable接口中的compareTo()方法):

Student[] ss = new Student[]{
new Student(20, "zhanglan"),
new Student(23,"dafdsaf"),
new Student(32,"dadfads"),
new Student(20, "fjdaskfjk")
};
Arrays.sort(ss);
for(int i = 0;i<ss.length;i++)
{
System.out.println(ss[i]);
}
}
class Student implements Comparable
{
int num;
String name;
public Student(int num,String name)
{
this.num = num;
this.name = name;
}
public String toString()
{
return "nember="+num+","+"name="+name;
}
public int compareTo(Object o)
{
Student s = (Student)o;
//return num>s.num?1:(num == s.num?0:-1);//这句话实现的是按照学号排序,下面写的是如果学号相同的情况下按照姓名排序
int result = num>s.num?1:(num == s.num?0:-1);
if(0 ==result)
{
result = name.compareTo(s.name);
}
return result;
}
}
在compareTo()方法中,Object A.compareTo(Object B),如果A大于B返回1,A等于B返回0,A小于B返回-1。只要将compareTo()方法写好了,就能按照自己的方法对数组进行排序了。对于排序还可以实现java.util.Comparator接口。
数组对于我们编程很重要,希望对你有帮助。

分享到:
评论

相关推荐

    java 反射中操作数组

    java 反射中操作数组 java 反射中操作数组 java 反射中操作数组

    Java数组传递及可变参数操作实例详解

    主要介绍了Java数组传递及可变参数操作,结合实例形式详细分析了java数组参数传递与可变参数相关使用技巧,需要的朋友可以参考下

    Java array 数组用法源码集.rar

    Java array 数组用法源码集,比如测试数组、划分成绩等级、从方法中返回数组、二分查找法、求二维数组的长度、锯齿数组、处理二维数组等,相信通过这些基础的数组操作实例,会对你了解Java中的数组有很好的帮助作用...

    面试题涵盖Java数组常见操作和用法

    本文将介绍Java数组的常见操作和用法,包括数组的声明、创建、初始化、访问、遍历等。我们还会讨论数组的长度、数组的最大值和最小值、数组的排序和反转、数组的比较和转换等常见操作。此外,我们还会探讨多维数组的...

    java数组排序

    java数组排序的思想,过程和代码实现。多种数组排序的方法,主要有冒泡排序,堆排序,插入排序, 归并操作(merge), 归并操作(merge),选择排序,希尔排序。

    Java数组操作.zip

    1. 统计并输出大写字母、小写字母、数字和其它字符的数量。... 定义一个数组,描述一个二维多边形顶点集合,遍历数组输出所有点的坐标值 2. 定义学生类,访问类的实例成员和类成员 、实例方法和类方法

    数组的基本操作

    java数组的基本操作 查找最大元素 选择排序 优化选择排序 冒泡排序 交换数组元素

    java数组相关知识点.zip

    下面将详细介绍Java数组的相关知识点。 一、数组的基本概念 数组是一个有序的集合,用于存储相同类型的元素。每个元素都有一个唯一的索引,用于访问和操作该元素。Java中的数组是静态的,即数组的长度在创建后就不...

    java整型数组常见操作方法-查找-排序-最值.pdf

    java整型数组常见操作方法-查找-排序-最值.pdf

    02-Java基础(数组-常见操作-遍历

    02-Java基础(数组-常见操作-遍历

    操作java数组的常用工具类

    操作java数组的常用工具类 和大家共享一下 共同学习

    Java数组操作方法总结2.pdf

    Java数组操作方法总结2.pdf 学习资料 复习资料 教学资源

    java实现二维数组转json的方法示例

    主要介绍了java实现二维数组转json的方法,涉及java数组遍历及json格式数据构造相关操作技巧,需要的朋友可以参考下

    数组工具JAVA类

    java的数组操作类

    java二维数组倒置实例

    使用java语言,对二维数组进行倒置操作

    JAVA数组操作

    这段时间学Java,为了让一起初学的朋友理解数组的操作,特传一个控制台的代码文件上来。这个主要是数组的操作。有Java输入输出,数组插入、删除、查找、排序的功能。

    Java数组的基本操作

    Java数组的基本操作

    Java取得两个数组中不同的元素

    该源代码很好地体现了数组与List之间的转换,同时也体现了两个集合的合并操作

    Java程序设计基础:二维数组基本操作.pptx

    //表示将10放入x[1][2]元素中 System.out.println(x[1][2]); x[0][0] x[0][1] x[0][2] x[0][3] x[0][4] x[1][0] x[1][1] x[1][2] x[1][3] x[1][4] x[2][0] x[2][1] x[2][2] x[2][3] x[2][4] x[3][0] x[3][1] x[3][2...

    JAVA数组练习

    适合初学者学习操作JAVA数组

Global site tag (gtag.js) - Google Analytics