小编Jas*_*son的帖子

如何加倍数组的大小

我必须实现一个从随机生成器获取其元素的数组.每当数组到达它的最后一个元素时,将调用方法resize()来增加数组的大小.在我的代码中,除了调用resize()方法之外,每个东西都会亮起,它对数组的大小没有任何影响.它应该增加数组的大小,以允许输入更多的元素.

    for (int j=0; j<arr.length-1; j++) {
        random= generator.nextInt(arr.length*4) ;
        arr[j]=random;

        }

    if(arr_size==arr.length){
        resize(arr);
        for (int h=0; h<(arr.length-1)*2; h++) {
            random= generator.nextInt(arr.length*4) ;
            arr[h]=random;}
    }
Run Code Online (Sandbox Code Playgroud)

这是resize():

     private static void  resize(int[] arr) {

    int[] tmp = new int[2*arr.length];
    System.arraycopy(arr,0,tmp,0,arr.length); 
    arr = tmp;
}
Run Code Online (Sandbox Code Playgroud)

java arrays random resize

5
推荐指数
2
解决办法
2万
查看次数

为什么StringBuilder比String快得多

我知道这里发布了很多类似的问题,但这些问题并没有真正回答我的问题.

我只是想知道为什么StringBuilder比使用+运算符的字符串连接快得多.即使+操作员内部是使用StringBuffer或者StringBuilder

public void shortConcatenation(){
    long startTime = System.currentTimeMillis();
    while (System.currentTimeMillis()-startTime<=1000){


        character+="Y";

    }

    System.out.println("short :"+character.length());
}
Run Code Online (Sandbox Code Playgroud)

////使用String builder

 public void shortConcatenation2(){
    long startTime = System.currentTimeMillis();
    StringBuilder sb = new StringBuilder();
    while (System.currentTimeMillis()-startTime<=1000){

        sb.append("Y");
    }
    System.out.println("string builder short :"+sb.length());
}
Run Code Online (Sandbox Code Playgroud)

提前致谢!

java string stringbuilder

3
推荐指数
2
解决办法
5517
查看次数

标签 统计

java ×2

arrays ×1

random ×1

resize ×1

string ×1

stringbuilder ×1