java数组扩增的三种方式

java数组声明的时候必须声明其长度,但当我们想对数组进行扩增的时候该怎么办呢?

下面三种方式都可以进行扩增,最后一种也最为方便。

 1         /**
 2          * 手动循环扩增
 3          */
 4         int[] arr = { 1, 2, 3 };
 5         int[] tempArray = new int[arr.length * 2];
 6         for (int i = 0; i < arr.length; i++) {
 7             tempArray[i] = arr[i];
 8         }
 9         //tempArray = { 1, 2, 3, 0, 0, 0 }
10
11         /**
12          * System.arraycopy
13          * 将原有的数组复制到一个新的长度更长的数组里,以达到扩增的目的
14          */
15         int[] arr1 = { 1, 2, 3 };
16         int[] newArray = new int[arr1.length * 2];
17         System.arraycopy(arr1, 0, newArray, 0, arr.length);
18         //newArray = { 1, 2, 3, 0, 0, 0 }
19
20         /**
21          * Arrays.copyOf
22          * 底层实现还是System.arraycopy
23          * 对自身进行扩增
24          */
25         int[] arr2 = { 1, 2, 3 };
26         arr2 = Arrays.copyOf(arr2, arr2.length * 2);
27         //arr2 = { 1, 2, 3, 0, 0, 0 }
时间: 2024-10-18 05:46:41

java数组扩增的三种方式的相关文章

java数组初始化的三种方式

  //第一种 int[] is= new int[3]; is[0]=1; is[1]=2; is[2]=3; //第二种 int[] is2= {1,2,3}; //第三种 int[] is3= new int[]{1,2,3}; //我个人比较喜欢第三种方式,比较容易阅读,并且用起来代码不啰嗦,重要的是看起来比较顺眼..

Java实现线程的三种方式和区别

Java实现线程的三种方式和区别 Java实现线程的三种方式: 继承Thread 实现Runnable接口 实现Callable接口 区别: 第一种方式继承Thread就不能继承其他类了,后面两种可以: 使用后两种方式可以多个线程共享一个target: Callable比Runnable多一个返回值,并且call()方法可以抛出异常: 访问线程名,第一种直接使用this.getName(),后两种使用Thread.currentThread().getName(). 下面我们通过代码来看一下实现

java多线程开启的三种方式

1.继承Thread类,新建一个当前类对象,并且运行其start()方法 1 package com.xiaostudy.thread; 2 3 /** 4 * @desc 第一种开启线程的方式 5 * @author xiaostudy 6 * 7 */ 8 public class Demo1_Thread extends Thread { 9 10 public void run() { 11 for (int i = 0; i < 10; i++) { 12 System.out.pri

java创建线程的三种方式及其对比

Java中创建线程主要有三种方式: 一.继承Thread类创建线程类 (1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务.因此把run()方法称为执行体. (2)创建Thread子类的实例,即创建了线程对象. (3)调用线程对象的start()方法来启动该线程. package com.thread; public class FirstThreadTest extends Thread{ int i = 0; //重写run方法,run方法的方

[OpenSource]浅谈.Net和Java互相调用的三种方式

在很多的大型系统开发中,开发工具往往不限制于同一种开发语言,而是会使用多种开发语言的混合型开发.目前Java和.Net都声称自己占85%的市场份额,不管谁对谁错,Java和.Net是目前应用开发的两个主要阵营,所以Java.和Net之间的整合是大型应用开发过程中经常会面临一个问题. 目前Java和.Net之间的整合主要有三种思路和做法(经过几天的查阅,目前我就看到了这三种方式,可能还有其他的方法): 1)基于通讯协议的整合 基于通讯协议的整合方式,最容易被人首先想到,简单的方式可以通过Web S

浅谈.Net和Java互相调用的三种方式

在很多的大型系统开发中,开发工具往往不限制于同一种开发语言,而是会使用多种开发语言的混合型开发.目前Java和.Net都声称自己占85%的市场份 额,不管谁对谁错,Java和.Net是目前应用开发的两个主要阵营,所以Java.和Net之间的整合是大型应用开发过程中经常会面临一个问题. 目前Java和.Net之间的整合主要有三种思路和做法(经过几天的查阅,目前我就看到了这三种方式,可能还有其他的方法): 1)基于通讯协议的整合 基于通讯协议的整合方式,最容易被人首先想到,简单的方式可以通过Web

java创建线程的三种方式及其对照

Java中创建线程主要有三种方式: 一.继承Thread类创建线程类 (1)定义Thread类的子类.并重写该类的run方法,该run方法的方法体就代表了线程要完毕的任务.因此把run()方法称为运行体. (2)创建Thread子类的实例,即创建了线程对象. (3)调用线程对象的start()方法来启动该线程. package com.thread; public class FirstThreadTest extends Thread{ int i = 0; //重写run方法.run方法的方

java实现多线程的三种方式

java中实现多线程的方法有两种:继承Thread类和实现runnable接口 1.继承Thread类,重写父类run()方法   public class thread1 extends Thread {           public void run() {                 for (int i = 0; i < 10000; i++) {                         System.out.println("我是线程"+this.get

java写入文件的三种方式比较

1.FileOutputStream方式 2.BufferedOutputStream方式 3.FileWriter方式 经过多次测试,发现不缓存的FileOutputStream会比较慢,当文件小的话,关系不大,但是当文件大时,消耗的时间就会有很明显差别 package fileTest; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.