- 浏览: 975788 次
- 性别:
- 来自: 重庆
文章分类
- 全部博客 (185)
- 生活感悟 (4)
- Eclipse 插件安装以及应用 (11)
- JAVA 基础 (43)
- 项目经验 (2)
- ubuntu (1)
- javascript (5)
- jquery (1)
- mysql (5)
- 数据库连接池 (2)
- 博文推荐 (13)
- hibernate (6)
- struts (3)
- 开源插件 (5)
- Exception (3)
- Environmental (2)
- ORACLE (9)
- SVN (1)
- 代码管理 (1)
- SAP/BO的Crystal Reports (1)
- 设计模式/原则 (6)
- 服务器 (1)
- mina (0)
- plsql (6)
- Spring (11)
- 网络编程 (1)
- JDBC (3)
- 多线程 (11)
- 智力考场 (8)
- 数据库笔试 (1)
- 框架集合 (3)
- webservice (3)
- 源码赏析 (9)
- 算法和数据结构 (12)
- JVM (7)
- 缓存 (8)
- JMS (7)
- 分布式 (0)
- IO/NIO (2)
- zookeeper (1)
- linux 笔记 (2)
- maven (1)
- soa (1)
- redis (6)
- hadoop (4)
- spark (6)
- 数据可视化 (1)
- scala (0)
- hive (2)
- flink (5)
最新评论
-
Carvendy许:
16/11/18 16:21:17 ERROR SparkDe ...
spark 笔记1 -- spark程序连接 -
谁说长得帅就不爷们:
什么情况下会有 p!=t ?
源码分析-ConcurrentLinkedQueue -
di1984HIT:
spring +ehcache 持久化数据,重启恢复 -
lc464297691:
给个我实现的代码,需要自己写一个类继承之~
public ab ...
JAVA数据库连接池实现 -
lc464297691:
100%发生死锁! if (isValid(conn)) ...
JAVA数据库连接池实现
先看一道题:
public static void main(String[] args) { int[] a = { 1, 2, 3, 4, 5 }; int[] b = new int[10]; for (int i : b) { b[i] = 0; } System.arraycopy(a, 0, b, 0, 5); for (int i : b) { System.out.print(b[i]); } }
猜猜应该打印什么?
答案:2345011111
数组复制:
1.使用FOR循环,将数组的每个元素复制或者复制指定元素,不过效率差一点
2.使用clone方法,得到数组的值,而不是引用,不能复制指定元素,灵活性差一点
3.使用System.arraycopy(src, srcPos, dest, destPos, length)方法,推荐使用
举例:
1.使用FOR循环
int[] src={1,3,5,6,7,8};
int[] dest = new int[6];
for(int i=0;i dest = src;
}
2.使用clone
int[] src={1,3,5,6,7,8};
int[] dest;
dest=(int[]) src.clone();//使用clone创建
副本,注意clone要使用强制转换
3.使用System.arraycopy
int[] src={1,3,5,6,7,8};
int[] dest = new int[6];
System.arraycopy(src, 0, dest, 0, 6);
-------------------------------------------------------------------
System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制.
其函数原型是:public static void arraycopy(Object src,
int srcPos,
Object dest,
int destPos,
int length)
src:源数组; srcPos:源数组要复制的起始位置;
dest:目的数组; destPos:目的数组放置的起始位置;
length:复制的长度.
注意:src and dest都必须是同类型或者可以进行转换类型的数组.
有趣的是这个函数可以实现自己到自己复制,
比如:int[] fun ={0,1,2,3,4,5,6};
System.arraycopy(fun,0,fun,3,3);
则结果为:{0,1,2,0,1,2,6};实现过程是这样的,先生成一个长度为length的临时数组,将fun数组中srcPos 到srcPos+length-1之间的数据拷贝到临时数组中,再执行System.arraycopy(临时数组,0,fun,3,3).
详情可参考:http://xiaooman07.iteye.com/blog/451843
评论
int[] a = { 1, 2, 3, 4, 5 };
int[] b = new int[10];
for (int i : b) {
b[i] = 0;
}
System.arraycopy(a, 0, b, 0, 5);
for (int i : b) {
System.out.print(b[i]);
System.out.print(i);
}
}
发表评论
-
jdbc 大数据量下载
2020-03-31 10:45 5791.背景: 常见数据应用里面会有数据 ... -
两个大数字乘法
2019-11-25 21:45 375/** * 默认最大长度50位,可以调节,或者 ... -
源码分析-ConcurrentLinkedQueue
2015-06-02 11:22 5030一.序言 现在并发操作中都要求高效,都在想怎么 ... -
lockInterruptibly 和 lock
2015-05-17 11:19 1478一.序言 ReentrantLock 锁有好几种 ... -
available 的理解和一些使用
2014-04-21 18:49 7825一、序言 这里主要介绍一下我们在读文件流,如 ... -
源码分析--ThreadLocal
2014-03-23 22:15 1908一、序言 这里会分析ThreadLocal ... -
多线程(三)--线程安全与锁
2014-03-13 00:03 17973一、引言: ... -
反射(一)----原理机制和基本运用
2014-02-27 20:26 5018JAVA 反射的应用还 ... -
Java程序员应该了解的10个设计原则
2013-12-30 18:09 1351转自:ht ... -
静态方法加锁,和非静态方法加锁区别
2013-11-13 09:43 25237今天看了到有意思的题:在静态方法上加锁 和 非静态方法加锁 ... -
设计模式-享元模式
2013-10-19 11:59 1398一、介绍 享 ... -
生产者与消费者 模型理解,与简单设计
2013-10-13 23:17 1611题外话:从中秋请假到现在,接近20天的假期,让我彻底耍晕了 ... -
排序算法(四)--快速排序
2013-09-17 16:15 1672package sort; import java. ... -
排序算法(三)--选择排序
2013-09-12 14:02 1475package sort; import ja ... -
排序算法(二)--插入排序
2013-09-09 11:10 1000/** * 插入排序 复杂度:N^2 * 原理:默 ... -
排序算法(一)--冒泡排序
2013-09-08 15:55 1640/** * 冒泡算法 复杂度:N^2 * 原理: ... -
排序算法(0)--初步设计
2013-09-08 13:48 1603最近复习了下,基本算法,发现会写,但是在应用上还是不好,也 ... -
JAVA 深入集合-- ArrayList
2013-09-06 21:51 1451一、介绍 ArrayList ... -
Java深入集合--linkedHashMap
2013-08-28 00:23 7082LinkedHashMap 源码介绍 一、介绍: ... -
Java 深入集合--HashMap
2013-08-18 21:48 2134一、HashMap介绍: 上面一篇介绍了ha ...
相关推荐
java学习中数组复制函数的调用方法,供java初学者入门参考使用,分享给大家
22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组...
Java数组: Java数组排序:冒泡排序、选择排序 、插入排序 、快速排序、希尔排序...三种Java数组复制方法 Java数组最大最小值 四种合并Java数组方法 Java数组升降序排序 Java数组查找:二分查找、顺序查找、插值查找法
Java数组是Java编程语言中的基本数据结构之一,用于存储固定数量的同类型元素。了解和熟练掌握数组的使用是学习Java的重要环节。本篇练习题涵盖了数组的基本概念、操作和异常处理,下面是针对题目中涉及知识点的详细...
Java 数组复制的四种方法效率对比 Java 数组复制是 Java 编程中非常重要的一个操作,它可以将源数组的元素复制到目标数组中。今天,我们将讨论 Java 数组复制的四种方法,并比较它们的效率。 System.arraycopy ...
2)利用数组复制方法可以变通的实现数组扩容。 3)System.arraycopy()可以复制数组。 4)Arrays.copyOf()可以简便的创建数组副本。 5)创建数组副本的同时将数组长度增加就变通的实现了数组的扩容。
Java数组是程序设计中的基本构建块,它允许程序员存储多个相同类型的数据在一个单一的结构中。在Java中,数组是一种对象,它们具有固定的大小,并且一旦创建,就不能更改其长度。数组提供了通过索引来访问其元素的...
Java数组是Java编程语言中的基本数据结构之一,它允许我们存储多个同类型的元素在一个单一的变量中。数组的使用在程序设计中至关重要,因为它提供了一种高效、有序的方式来管理和访问数据。下面将深入探讨Java数组的...
Java数组是程序设计中不可或缺的基础概念,它是一种数据结构,允许我们存储同类型的多个元素。在Java中,数组是对象,具有固定的大小,一旦创建,其长度就不能改变。本篇文章将深入探讨Java数组的各个方面,包括创建...
Java提供了System类的arraycopy()方法,它是进行数组复制的最直接和高效的方式。该方法接受五个参数:源数组、源数组起始位置、目标数组、目标数组起始位置和复制的元素数量。例如: ```java int[] srcArray = {1...
通过`com.bruceeckel.util`包中的工具类,我们可以更加高效和便捷地处理Java数组,提高代码的可读性和维护性。学习和熟练掌握这些数组函数,对于提升Java编程能力是非常有帮助的。在实际开发中,我们应该充分利用...
Java数组是Java编程语言中基本的数据结构之一,它允许存储同一类型的多个元素。在本PPT中,我们将深入探讨Java数组的概念、创建、初始化、访问和操作数组的各种方法。 一、数组的概念 数组是一种线性数据结构,它将...
### Java数组和字符串详解 #### 实验目标与背景 本次实验旨在深化理解Java中的数组与字符串操作,聚焦于`String`类与`StringBuffer`类的掌握,包括它们的常用方法、相等性判断的不同方式、数组的创建及引用机制,...
以上内容涵盖了Java数组求和计算的基本知识以及相关的扩展话题。理解并掌握这些知识点对于进行有效的Java编程至关重要。在实际应用中,根据具体需求,可能还需要考虑性能优化、异常处理等方面的问题。
当你把数组作为参数传递给方法时,实际上是传递了数组的引用,而非复制整个数组。这意味着在方法内部对数组的修改会影响到原始数组。例如: ```java void modifyArray(int[] arr) { arr[0] = 10; } int[] original...
【Java数组】是Java编程语言中基础且重要的数据结构,它允许存储固定数量的相同类型的数据。数组在Java中属于引用类型,也就是说数组本身是一个对象,数组中的每个元素相当于这个对象的成员变量。数组可以包含任何...
Java数组堆栈的实现有一些缺点,例如,在扩展数组的大小时,需要复制整个数组,可能会导致性能问题。此外,ArrayStack类不支持多线程访问,可能会导致线程安全问题。 应用场景 Java数组堆栈可以应用于各种场景,...
本篇将深入探讨Java数组的相关知识点,并通过实际的例子代码来加深理解。 1. **数组的声明与初始化** 在Java中,我们可以声明一个数组并同时初始化它。例如,创建一个包含5个整数的数组: ```java int[] ...