- 浏览: 45898 次
- 性别:
- 来自: 沈阳
最新评论
一、Java标准类库提供static方法System.arraycopy(),用它复制数组比用for循环复制要快得多, System.arraycopy()针对所有的类型做了重载,需要5个参数。
第一个参数:源数组。
第二个参数:偏移量,即从哪个位置开始复制的索引。
第三个参数:目标数组。
第四个参数:偏移量。
第五个参数:要从源数组中复制到目标数组元素的个数,一般情况下为目标数组的长度。
例:
从A数组中复制元素到B数组?
public class Practice {
public static void main(String[] args){
String[] A = {"H","e","l","l","o"};
String[] B = new String[3];
System.arraycopy(A, 0, B, 1, B.length - 1);
for(int i = 0; i < B.length; i ++){
System.out.print(B[i] + " ");
}
}
}
运行结果为:null H e;
二、Array.Fill(数组名,值)此方法用于填充数组。
例:
现向已知数组A中填充值?
public class Practice {
public static void main(String[] args){
String[] A = new String[5];
Arrays.fill(A, "Hello");
for(int i = 0; i < A.length; i ++){
System.out.print(A[i] + " ");
}
}
}
运行结果为:
Hello Hello Hello Hello Hello
三、Array.equals(数组名A,数组名B),比较两个数组A、B是否相等,此方法针对所有基本类型与object都作了重载,例如比较两个数是否相等用Integer.equals()方法……,通过object.equals()方法比较数组是否相等,是基于内容的。
例:
三个已知数组的比较?
public class Practice {
public static void main(String[] args){
String[] A = {"1","2","3"};
String[] B = {"一","二","三"};
String[] C = {"1","2","3"};
System.out.println(Arrays.equals(A, B));
System.out.println(Arrays.equals(A, C));
}
}
运行结果为:false
true
四、Array.asList()此方法用于输出数组中的所有数.
例:
输出已知数组A中的所有数?
public class Practice {
public static void main(String[] args){
String[] A = {"H","e","l","l","o"};
System.out.println(Arrays.asList(A));
}
}
运行结果为:
[H, e, l, l, o];
五、数组中的排序
使用内置的排序方法,就可以对任意的基本类型数组排序,也可以对任意的对象数组进行排序,只要该对象实现了Comparable接口或具有相关联的Comparator接口
例:
已经数组String[] A = {"A","B","c","D","e","f","G","H"};现对数组A进行排序,要求忽略大小写排序?
分析:String默认的排序方法,第一步是将大写字母开头的词均放在小写字母头的词的前面,然后才进行排序。
如:String[] A = {"A","B","c","D","e","f","G","H"};
Arrays.sort(A);
System.out.println(Arrays.asList(A));
运行结果为:[A, B, D, G, H, c, e, f];
如果想忽略大小写,可以通过自定义排序方式来实现:
如:
public class Practice1 implements Comparator{
public static void main(String[] args){
String[] A = {"A","B","c","D","e","f","G","H"};
Arrays.sort(A,new Practice1());
System.out.println(Arrays.asList(A));
}
public int compare(Object o1, Object o2) {
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
}
运行结果为:[A, B, c, D, e, f, G, H];
六、使用Arrays.binarySearch()执行快速查找。
例:快速查找数组A中的元素?
public class Practice{
public static void main(String[] args){
String[] a = {"a","d","e","w","f"};
Arrays.sort(a);
System.out.println(Arrays.asList(a));
int index1 = Arrays.binarySearch(a, "f");
System.out.println("要查找的值存在的时候:" + index1);
int index2 = Arrays.binarySearch(a, "n");
index2 = -index2 - 1;
System.out.print("当不存在的时候输出该值最可能存在的位置:" + index2);
}
}
注意:不要对未排序的数组使用binarySearch();
七、Arrays.copyOf()用法,这个方法是将原数组快速复制成一个新数组。如果新数组的长度小于旧数组的长度,将截取一部分旧数组中的元素,复制给新数组,
反之,如果大于旧数组的长度,则将以0,null,或false给予补充。
例:快速复制数组?
public class Practice{
public static void main(String[] args){
String[] a = {"a","d","e","w","f"};
String[] b = new String[4];
String[] c = new String[5];
String[] d = new String[6];
b = Arrays.copyOf(a, b.length);
c = Arrays.copyOf(a, c.length);
d = Arrays.copyOf(a, d.length);
System.out.println("b数组的元素:" + Arrays.asList(b));
System.out.println("c数组的元素:" + Arrays.asList(c));
System.out.println("d数组的元素:" + Arrays.asList(d));
}
}
运行结果为:
b数组的元素:[a, d, e, w]
c数组的元素:[a, d, e, w, f]
d数组的元素:[a, d, e, w, f, null]
八、Arrays.copyOfRange()用法,这个方法与前面介绍的Arrays.copyOf()的用法相似,下面来通过具体实例讲解。
例:如何将原数组指定复制一个新数组?
public class Practice{
public static void main(String[] args){
String[] a = {"a","d","e","w","f"};
String[] b = new String[4];
b = Arrays.copyOfRange(a, 2, 4);
System.out.println("b数组的元素:" + Arrays.asList(b));
}
}
运行结果为:
b数组的元素:[e, w];
相信读者已知道其中用法了吧,type[] N = Arrays.copyofRange("原数组",i,j)就是复制原数组赋值给新的数组N,指定从索引i到j;
九、Arrays.deepToString()用法,这个方法的用法同Arrays.asList()的用法相似,此方法是为了将多维数组转换为字符串而设计的;
下面通过例子来看一下它们的相同点。
例:输出已知数组a中的元素。
public class Practice{
public static void main(String[] args){
String[] a = {"a","d","e","w","f"};
System.out.println("用Arrays.asList()方法输出:" + Arrays.asList(a));
System.out.println("用Arrays.deepToString()方法输出:" + Arrays.deepToString(a));;
}
}
运行结果为:
用Arrays.asList()方法输出:[a, d, e, w, f]。
用Arrays.deepToString()方法输出:[a, d, e, w, f]。
十、Arrays.deepEquals()的用法。
说明:此方法与 Arrays.equals(Object[],Object[]) 方法不同,此方法适用于任意深度的嵌套数组。
如果两个数组引用均为 null,或者它们引用了包含相同元素数量的数组,并且两个数组中的所
有相应元素对都是深层相等的,则认为这两个数组引用是深层相等的。
例:已知三个三维数组间的比较。
public class Practice{
public static void main(String[] args){
String[][][] d = new String[2][2][2];
d[1][1][1] = "a";
String[][][] e = new String[3][3][3];
e[1][1][1] = "a";
String[][][] f = new String[2][2][2];
f[1][1][1] = "a";
String[][][] g = new String[2][2][2];
g[1][1][1] = "ab";
System.out.println("--------------------------");
System.out.println("输出equals()方法与deepEquals()方法的区别;");
System.out.println("数组d与数组f进行比较: " + d.equals(f));
System.out.println("数组d与数组f进行比较: " + Arrays.deepEquals(d, f));
System.out.println("--------------------------");
//下面输出比较结果
System.out.println("=================================");
System.out.println("数组d与数组e进行比较: " + Arrays.deepEquals(d, e));
System.out.println("数组d与数组g进行比较: " + Arrays.deepEquals(d, g));
System.out.println("=================================");
}
}
运行结果为:
--------------------------
输出equals()方法与deepEquals()方法的区别;
数组d与数组f进行比较: false
数组d与数组f进行比较: true
--------------------------
=================================
数组d与数组e进行比较: false
数组d与数组g进行比较: false
=================================
十一、Collections.reverseOrder()用法(反转自然的顺序);
例:用除了循环外的另一方式逆向输出已知数组a?
public class Practice{
public static void main(String[] args){
String[] a = {"a","b","c"};
Arrays.sort(a,Collections.reverseOrder());
System.out.println(Arrays.asList(a));
}
}
运行结果为:[c, b, a];
第一个参数:源数组。
第二个参数:偏移量,即从哪个位置开始复制的索引。
第三个参数:目标数组。
第四个参数:偏移量。
第五个参数:要从源数组中复制到目标数组元素的个数,一般情况下为目标数组的长度。
例:
从A数组中复制元素到B数组?
public class Practice {
public static void main(String[] args){
String[] A = {"H","e","l","l","o"};
String[] B = new String[3];
System.arraycopy(A, 0, B, 1, B.length - 1);
for(int i = 0; i < B.length; i ++){
System.out.print(B[i] + " ");
}
}
}
运行结果为:null H e;
二、Array.Fill(数组名,值)此方法用于填充数组。
例:
现向已知数组A中填充值?
public class Practice {
public static void main(String[] args){
String[] A = new String[5];
Arrays.fill(A, "Hello");
for(int i = 0; i < A.length; i ++){
System.out.print(A[i] + " ");
}
}
}
运行结果为:
Hello Hello Hello Hello Hello
三、Array.equals(数组名A,数组名B),比较两个数组A、B是否相等,此方法针对所有基本类型与object都作了重载,例如比较两个数是否相等用Integer.equals()方法……,通过object.equals()方法比较数组是否相等,是基于内容的。
例:
三个已知数组的比较?
public class Practice {
public static void main(String[] args){
String[] A = {"1","2","3"};
String[] B = {"一","二","三"};
String[] C = {"1","2","3"};
System.out.println(Arrays.equals(A, B));
System.out.println(Arrays.equals(A, C));
}
}
运行结果为:false
true
四、Array.asList()此方法用于输出数组中的所有数.
例:
输出已知数组A中的所有数?
public class Practice {
public static void main(String[] args){
String[] A = {"H","e","l","l","o"};
System.out.println(Arrays.asList(A));
}
}
运行结果为:
[H, e, l, l, o];
五、数组中的排序
使用内置的排序方法,就可以对任意的基本类型数组排序,也可以对任意的对象数组进行排序,只要该对象实现了Comparable接口或具有相关联的Comparator接口
例:
已经数组String[] A = {"A","B","c","D","e","f","G","H"};现对数组A进行排序,要求忽略大小写排序?
分析:String默认的排序方法,第一步是将大写字母开头的词均放在小写字母头的词的前面,然后才进行排序。
如:String[] A = {"A","B","c","D","e","f","G","H"};
Arrays.sort(A);
System.out.println(Arrays.asList(A));
运行结果为:[A, B, D, G, H, c, e, f];
如果想忽略大小写,可以通过自定义排序方式来实现:
如:
public class Practice1 implements Comparator{
public static void main(String[] args){
String[] A = {"A","B","c","D","e","f","G","H"};
Arrays.sort(A,new Practice1());
System.out.println(Arrays.asList(A));
}
public int compare(Object o1, Object o2) {
String s1 = (String)o1;
String s2 = (String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
}
运行结果为:[A, B, c, D, e, f, G, H];
六、使用Arrays.binarySearch()执行快速查找。
例:快速查找数组A中的元素?
public class Practice{
public static void main(String[] args){
String[] a = {"a","d","e","w","f"};
Arrays.sort(a);
System.out.println(Arrays.asList(a));
int index1 = Arrays.binarySearch(a, "f");
System.out.println("要查找的值存在的时候:" + index1);
int index2 = Arrays.binarySearch(a, "n");
index2 = -index2 - 1;
System.out.print("当不存在的时候输出该值最可能存在的位置:" + index2);
}
}
注意:不要对未排序的数组使用binarySearch();
七、Arrays.copyOf()用法,这个方法是将原数组快速复制成一个新数组。如果新数组的长度小于旧数组的长度,将截取一部分旧数组中的元素,复制给新数组,
反之,如果大于旧数组的长度,则将以0,null,或false给予补充。
例:快速复制数组?
public class Practice{
public static void main(String[] args){
String[] a = {"a","d","e","w","f"};
String[] b = new String[4];
String[] c = new String[5];
String[] d = new String[6];
b = Arrays.copyOf(a, b.length);
c = Arrays.copyOf(a, c.length);
d = Arrays.copyOf(a, d.length);
System.out.println("b数组的元素:" + Arrays.asList(b));
System.out.println("c数组的元素:" + Arrays.asList(c));
System.out.println("d数组的元素:" + Arrays.asList(d));
}
}
运行结果为:
b数组的元素:[a, d, e, w]
c数组的元素:[a, d, e, w, f]
d数组的元素:[a, d, e, w, f, null]
八、Arrays.copyOfRange()用法,这个方法与前面介绍的Arrays.copyOf()的用法相似,下面来通过具体实例讲解。
例:如何将原数组指定复制一个新数组?
public class Practice{
public static void main(String[] args){
String[] a = {"a","d","e","w","f"};
String[] b = new String[4];
b = Arrays.copyOfRange(a, 2, 4);
System.out.println("b数组的元素:" + Arrays.asList(b));
}
}
运行结果为:
b数组的元素:[e, w];
相信读者已知道其中用法了吧,type[] N = Arrays.copyofRange("原数组",i,j)就是复制原数组赋值给新的数组N,指定从索引i到j;
九、Arrays.deepToString()用法,这个方法的用法同Arrays.asList()的用法相似,此方法是为了将多维数组转换为字符串而设计的;
下面通过例子来看一下它们的相同点。
例:输出已知数组a中的元素。
public class Practice{
public static void main(String[] args){
String[] a = {"a","d","e","w","f"};
System.out.println("用Arrays.asList()方法输出:" + Arrays.asList(a));
System.out.println("用Arrays.deepToString()方法输出:" + Arrays.deepToString(a));;
}
}
运行结果为:
用Arrays.asList()方法输出:[a, d, e, w, f]。
用Arrays.deepToString()方法输出:[a, d, e, w, f]。
十、Arrays.deepEquals()的用法。
说明:此方法与 Arrays.equals(Object[],Object[]) 方法不同,此方法适用于任意深度的嵌套数组。
如果两个数组引用均为 null,或者它们引用了包含相同元素数量的数组,并且两个数组中的所
有相应元素对都是深层相等的,则认为这两个数组引用是深层相等的。
例:已知三个三维数组间的比较。
public class Practice{
public static void main(String[] args){
String[][][] d = new String[2][2][2];
d[1][1][1] = "a";
String[][][] e = new String[3][3][3];
e[1][1][1] = "a";
String[][][] f = new String[2][2][2];
f[1][1][1] = "a";
String[][][] g = new String[2][2][2];
g[1][1][1] = "ab";
System.out.println("--------------------------");
System.out.println("输出equals()方法与deepEquals()方法的区别;");
System.out.println("数组d与数组f进行比较: " + d.equals(f));
System.out.println("数组d与数组f进行比较: " + Arrays.deepEquals(d, f));
System.out.println("--------------------------");
//下面输出比较结果
System.out.println("=================================");
System.out.println("数组d与数组e进行比较: " + Arrays.deepEquals(d, e));
System.out.println("数组d与数组g进行比较: " + Arrays.deepEquals(d, g));
System.out.println("=================================");
}
}
运行结果为:
--------------------------
输出equals()方法与deepEquals()方法的区别;
数组d与数组f进行比较: false
数组d与数组f进行比较: true
--------------------------
=================================
数组d与数组e进行比较: false
数组d与数组g进行比较: false
=================================
十一、Collections.reverseOrder()用法(反转自然的顺序);
例:用除了循环外的另一方式逆向输出已知数组a?
public class Practice{
public static void main(String[] args){
String[] a = {"a","b","c"};
Arrays.sort(a,Collections.reverseOrder());
System.out.println(Arrays.asList(a));
}
}
运行结果为:[c, b, a];
发表评论
-
resin出现问题:java.lang.Error: Unresolved compilation problems:com.caucho cannot be
2010-08-09 15:24 4016最近resin不知道怎么出现问题了。resin启开后,登陆JS ... -
JSP页面跳转的几个方法
2010-07-25 00:30 7581. RequestDispatcher.forward() ... -
poi之excel导入数据库
2010-07-25 00:25 1045数据库表有这些字段:ID,BOOK_NAME,BOOK_AUT ... -
JexcelApi和POI导入Excel日期识别成数字的解决方案
2010-07-25 00:24 915用过Jxl或者POI导入Excel信息的朋友应该都遇到过这样的 ... -
JSP中两种相对路径的区别
2010-07-25 00:07 950给你看看 希望对你有所帮助!!! 1 JSP、Serv ... -
如何在jsp中引用js变量
2010-07-25 00:06 2024JSP数据和JavaScirpt数据交互使用问题的一种解决方法 ... -
关于jsp:include和jsp:param的使用
2010-07-25 00:05 1439========static.html=========== ... -
JSP中的两种包含页面的方法
2010-07-25 00:04 780第一种:include指令:当JSP转换成Servlet时引入 ... -
JSP之session对象
2010-07-25 00:03 737保存及获取属性 index.jsp: <%@page ... -
jsp中的input里面的东西要怎么取出来
2010-07-25 00:02 1207表单元素: <Input type="text ... -
用jsp做页面,怎么样获取当前页面的值
2010-07-25 00:02 1942在当前页面的话如楼上说的可以用javascript获取它的值: ... -
JavaScript使用技巧精萃
2010-07-25 00:00 658(一).确认删除用法: 1. BtnDel.Attribu ... -
JSP动作
2010-07-24 23:59 641JSP动作利用XML语法格式的标记来控制Servlet引擎的行 ... -
jsp中错误处理页面-isErrorPage="true"
2010-07-24 23:58 3245举例说明:mustBeError.jsp <%@ pa ...
相关推荐
下面小编就为大家带来一篇java基础之数组常用操作总结(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
本专栏主要为Java程序设计(基础)实验报告和Java程序设计(进阶)实验报告,基础篇有JAVA环境搭建、Java语言基础、方法和数组、面向对象基础、Java常用类、继承与接口、成员访问控制与异常、JavaFX程序设计、Java...
一维数组的创建以及常用方法数组类型的介绍与总结,适合初学者,预习自学
主要介绍了Java实现把两个数组合并为一个的方法,结合实例形式总结分析了java常用的四种数组合并操作技巧,需要的朋友可以参考下
本文为大家总结了javascript数组常用方法,具体内容如下 1、join()方法: Array.join()方法将数组中所以元素都转化为字符串链接在一起,返回最后生成的字符串。也可以指定可选的字符串在生成的字符串中来分隔...
主要介绍了Java数组常用排序算法,结合实例形式总结分析了java数组常用的4种排序算法,包括冒泡排序、数组递增排序、快速排序及选择排序,需要的朋友可以参考下
Java数组与集合小结 305 递归 309 对象的序列化 310 Java两种线程类:Thread和Runnable 315 Java锁小结 321 java.util.concurrent.locks包下常用的类 326 NIO(New IO) 327 volatile详解 337 Java 8新特性 347 Java...
本文实例总结了javascript中数组(Array)对象和字符串(String)对象的常用方法。分享给大家供大家参考,具体如下: 综述:笔者经常将数组的方法和字符串的方法混淆,这里写篇日志,做个区分 1.字符串对象 String是...
实验三 Java 数组和方法应用 10 实验四 类和对象;类的继承和派生;多态性;接口;构造器应用 16 实验五 Java访问控制管理;封装类;内部类; 内存管理与垃圾收集 8 实验六 Java 异常处理的程序设计;Java 自定义...
对java一些常用基础的总结,java基本知识,数组,java内存分配,方法总结,面向对象,常用API,常用集合
本专栏主要为Java程序设计(基础)实验报告和Java程序设计(进阶)实验报告,基础篇有JAVA环境搭建、Java语言基础、方法和数组、面向对象基础、Java常用类、继承与接口、成员访问控制与异常、JavaFX程序设计、Java...
java各知识点详细总结(毕向东笔记整理)。第一章:编程基础 3-11 第二章:数组 11 -31 第三章:面向对象程序开发 31 -74 第四章:异常机制 74 -89 第五章:多线程技术 89 -122122122 第六章:常用类 API 122API 122 ...
java集合类知识总结--思维导图文件xmind xmind文件类型 总结了java常用集合相关问题 包括map、set、list、数组等
• 熟悉Java多线程并发中线程基本方法,线程池,线程生命周期,熟悉Java锁中常见锁分类(乐观/悲观锁、自旋锁、独/共享锁、可重入锁、公平/非公平锁、分段锁、偏向锁,轻/重量级锁)和基本的锁升级策略
此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),...
数组:一维数组 ,静态方法(结合第3章静态变量)特点 方法参数传递(传值、传递引用的区别) , 方法重载(同名、参数形式不同) 字符串(常量、与字符常量的区别、连接运算、例2.18) 。。。。。。。 。。。。 第...
Java面向对象编程概述 Java类定义 内部类和继承 继承的使用 异常处理 数组 Java常用类 集合类 泛型化的集合框架 使用Java的输入/输出类 Java GUI和Swing 事件委托模型.....的详细概述
2.2.7 Java数据类型、数组和标识符需要记忆的要点 2.3 Java中的运算符 2.3.1 赋值运算符 2.3.2 比较运算符 2.3.3 算术运算符 2.3.4 自增和自减运算符 2.3.5 更多的整数运算符 2.3.6 使用点运算符 2.3.7 instanceof...
当应用试图调用某类的某个方法,而该类的定义中没有该方法的定义时抛出该错误。 java.lang.OutOfMemoryError 内存不足错误。当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误。 java.lang.StackOverflow...