精华内容
下载资源
问答
  • 我有一个用逗号分隔的ID字符串.如果总数不为零,我想将此逗号分隔的字符串拆分为多个字符串.的ID大于500.我可以做什么:我可以将此字符串转换为整数数组,然后测试其大小.将多个数组拆分成多个数组,然后将其重新转换为...

    我有一个用逗号分隔的ID字符串.如果总数不为零,我想将此逗号分隔的字符串拆分为多个字符串.的ID大于500.

    我可以做什么:

    我可以将此字符串转换为整数数组,然后测试其大小.将多个数组拆分成多个数组,然后将其重新转换为逗号分隔的字符串.

    到目前为止,我的代码:

    Integer[] empIdInt = null;

    String tokens[]=Application.splitstr(outerArray, ",");

    if(!ErmUtil.isNull(tokens) && tokens.length>0){

    empIdInt=new Integer[tokens.length];

    for(int i=0;i

    empIdInt[i]=Integer.valueOf(tokens[i]);

    }

    }

    问题

    >解决这个问题的方法正确吗?

    >如果是,如何将integer []数组拆分为多个数组?

    >如果没有,我该怎么办?

    编辑:

    输入:“ 1,2,3,4,5,6,7,8,9,10,11” // ID列表;

    如果没有,我想将它们弄断一个以上的字符串. ID的数量大于3.因为我们是10,即总数不超过3.的ID.所以输出可能是

    输出“ 1,2,3” //第一个字符串

    ???????“ 4,5,6” //第二个字符串

    ???????“ 7,8,9” //第三个字符串

    ???????“ 10” //第4个字符串

    展开全文
  • int[][] arr = { {1,3,5,6}, {2,4,5,7}, {2,3,5,6} }; for (int i = 0; i < arr.length; i++) { System.out.println(arr[i].toString()); System.out.println(Arrays.toString(arr[i])); } 输出: [1, 3...

    直接上代码:

    public class Test {
        public static void main(String[] args) {
            int[][] arr = {
              {1,3,5,6},
              {2,4,5,7},
              {2,3,5,6}
            };
            for (int i = 0; i < arr.length; i++) {
                 System.out.println(arr[i].toString());
                  System.out.println(Arrays.toString(arr[i]));
            }
        }
    }

    输出:

    [1, 3, 5, 6]
    [I@2b71fc7e
    [2, 4, 5, 7]
    [I@5ce65a89
    [2, 3, 5, 6]

    由此可以看出,arr.toString()输出的是数组地址,想要输出数组内容,还是要用Arrays.toString(arr)方法。

    通过源码我们可以看出Arrays的toString()方法是一个重载的方法。方法里的参数可以是8种基本数据类型及String类型的数组。

    展开全文
  • Java中join()方法的理解

    千次阅读 2021-02-26 13:22:29
    import staticjava.lang.Thread.currentThread;import staticjava.lang.Thread.sleep;/*** Created with IntelliJ IDEA. * User: Blank * Date: 14-3-28 * Time: 下午7:49*/ public class TestJoin ...

    thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。

    比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。

    t.join();      //调用join方法,等待线程t执行完毕

    t.join(1000);  //等待 t 线程,等待时间是1000毫秒。

    下面是一段JDK中的代码:

    /*** Waits at most millis milliseconds for this thread to

    * die. A timeout of 0 means to wait forever.*/

    public final synchronized void join(long millis) throwsInterruptedException {long base =System.currentTimeMillis();long now = 0;if (millis < 0) {throw new IllegalArgumentException("timeout value is negative");

    }if (millis == 0) {while(isAlive()) {

    wait(0);

    }

    }else{while(isAlive()) {long delay = millis -now;if (delay <= 0) {break;

    }

    wait(delay);

    now= System.currentTimeMillis() -base;

    }

    }

    }

    从代码上看,如果线程被生成了,但还未被起动,调用它的 join() 方法是没有作用的,将直接继续向下执行

    Join方法实现是通过wait(小提示:Object 提供的方法)。当main线程调用t.join时候,main线程会获得线程对象t的锁(wait 意味着拿到该对象的锁),调用该对象的wait(等待时间),直到该对象唤醒main线程,比如退出后。这就意味着main 线程调用t.join时,必须能够拿到线程t对象的锁。

    通过下面一段代码解释:

    packageThreadTest;import staticjava.lang.Thread.currentThread;import staticjava.lang.Thread.sleep;/*** Created with IntelliJ IDEA.

    * User: Blank

    * Date: 14-3-28

    * Time: 下午7:49*/

    public class TestJoin implementsRunnable {public static void main(String[] sure) throwsInterruptedException {

    Thread t= new Thread(newTestJoin());long start =System.currentTimeMillis();

    t.start();

    t.join(1000);//等待线程t 1000毫秒

    System.out.println(System.currentTimeMillis()-start);//打印出时间间隔

    System.out.println("Main finished");//打印主线程结束

    }

    @Overridepublic voidrun() {//synchronized (currentThread()) {

    for (int i = 1; i <= 5; i++) {try{

    sleep(1000);//睡眠5秒,循环是为了方便输出信息

    } catch(InterruptedException e) {

    e.printStackTrace();

    }

    System.out.println("睡眠" +i);

    }

    System.out.println("TestJoin finished");//t线程结束

    }//}

    }

    在注释掉synchronized修饰的run方法后,打印信息如下:

    8d7d49e31af74fea309bf0cf3cc25b07.png

    可以看到main线程等待了t线程1000毫秒之后,结束了,随后是t线程打印的数据。

    那么如果加上run方法的synchronized那条语句呢?结果如下:

    cf68a243b95c7bb34c0d04da9e6a2675.png

    由于先调用了t.start()方法,线程进入synchronized代码段,main线程等待一秒以后,还是得不到线程t的对象锁,只能继续等待,直到线程t结束,释放锁。这里可以明确看到main线程等待时间是5000ms,有些文章里写的是t线程执行时间+join方法指定的时间(5000+1000 ),其实不是的,这里可以很清晰的看到,main线程等待时间只有5000ms,看到有的文章说join调用的wait也是需要获取对象锁的。

    JDK源代码中wait操作是

    public final native void wait(long timeout) throws InterruptedException;

    wait内部实现应该是用synchronized,等待时间是5000+1000就好解释了,搞不明白。

    此处存疑。

    展开全文
  • JAVA拼合数组方法

    2021-02-12 16:43:48
    方法一:package org.ken.array;import java.lang.reflect.Array;...public class JoinArray {/*** @param args*/public static void main(String[] args) {Integer[] arr1 = new Integer[]{1,2,3}...

    方法一:

    package org.ken.array;

    import java.lang.reflect.Array;

    import java.util.Arrays;

    public class JoinArray {

    /**

    * @param args

    */

    public static void main(String[] args) {

    Integer[] arr1 = new Integer[]{1,2,3};

    Integer[] arr2 = new Integer[]{4,5,6};

    Integer[] result1 = (new JoinArray()).joinArrayGeneric(arr1,arr2);

    System.out.println(Arrays.toString(result1));

    int[] arr2_1 = new int[]{1,2,3};

    int[] arr2_2 = new int[]{4,5,6};

    int[] result2 = (new JoinArray()).joinArray(arr2_1,arr2_2);

    System.out.println(Arrays.toString(result2));

    }

    T[] joinArrayGeneric(T[]... arrays) {

    int length = 0;

    for (T[] array : arrays) {

    length += array.length;

    }

    final T[] result = (T[]) Array.newInstance(arrays[0].getClass().getComponentType(), length);

    int offset = 0;

    for (T[] array : arrays) {

    System.arraycopy(array, 0, result, offset, array.length);

    offset += array.length;

    }

    return result;

    }

    /**

    * 合适于int

    * @param arrays

    * @return

    */

    int[] joinArray(int[]... arrays) {

    int length = 0;

    for (int[] array : arrays) {

    length += array.length;

    }

    final int[] result = new int[length];

    int offset = 0;

    for (int[] array : arrays) {

    System.arraycopy(array, 0, result, offset, array.length);

    offset += array.length;

    }

    return result;

    }

    }

    第二种,用apache commons-lang包

    int [] int1 = new int[]{1,2,3};

    int[] int2 = new int[]{4,5,6};

    int[] result = ArrayUtils.addAll(int1, int2);

    System.out.println(Arrays.toString(result));

    展开全文
  • Java基础(五):Java数组声明与初始化

    千次阅读 2021-01-04 11:31:27
    Java语言中数组必须先初始化,然后才可以使用。 初始化就是为数组的数组元素分配内存空间,并为每个数组元素附初始值。 注意:数组完成初始化后,内存空间中针对该数组的各个元素就有个一个默认值: 基本数据...
  • import java.util.Arrays; public class Javase6_1 { public static void main(String[]args){ int arr1[]=new int[]{1,2,3,4,5,6,7,8,9,10}; int arr2[]= Arrays.copyOfRange(arr1,0,3); //索引0-3中的元素...
  • 此方法用于从指定列表中删除集合中存在的所有元素。用法:boolean removeAll(Collection c)参数:此方法只有一个参数,即要从给定列表中...示例1:// Java code to show the implementation of// removeAll method i...
  • java中int[] arr和int arr[]有什么区别

    千次阅读 2021-03-01 16:04:04
    答:是一样的 []跟在变量名后面或者跟在类型后面都可以; int [ ]arr 这么写不对的 推荐 int[ ] arr 写法
  • public class Pub {public static void beforeSort(int[] arr){System.out.println("before sort: ");for(int i:arr){System.out.print(i+" ");}System.out.println();}public static void afterSort(i...
  • 获取arr数组中所有元素的和:
  • float[10] arr——该语句是想建立一个大小为10的数组 有以下声明方法: float[] arr; arr=new float[10]; float[] arr=new float[10]; 但不能写成float[10] arr,系统无法识别该语句给arr数组分配内存空间。
  • 题目给定一个无序数组,例如int[] arr={3,5,8,9,12,21,27},列出所有满足条件的集合:集合中包含两个值a、b(a和b都在数组中,且a不等于b)a+b=c,c也要在数组中思考先排序。用 a 和 b的索引来做嵌套循环,a主...
  • public class Demo1Array {/*** @param args* 15.01_集合框架(对象数组的概述和使用)* A:案例演示* 需求:我有5个学生,请把这个5个学生的信息存储到数组中,并遍历数组,获取得到每一个...*Student[] arr = new Stu...
  • 错 float[] arr=new float[10];
  • 如何检查数组是否为空/空?

    千次阅读 2021-04-10 11:06:15
    int arr[] = null;if (arr == null) {System.out.println("array is null");}这里的“空”没有官方含义。我选择将空定义为具有0个元素:arr = new int[0];if (arr.length == 0) {System.out.println("array is ...
  • public class HelloWorld { public static void main... String arr[]=new String []{"25","36","11","22","99","36","2","88","87"}; System.out.println("替换前数组:" ); for(String x : arr) { Sys...
  • Java数组 2021/4/5 周一 复习内容: 数组的声明和初始化、数组的长度、数组访问、java.lang.ArrayIndexOutOfBoundsException数组下标越界异常、二维数组、java.lang....int[] arr; // 数据类型 数组名[]; int
  • 给定一个整形数组arr,已知其中所有的值都是非负的,将这个数组看作一个容器,请返回容器能装多少水。 具体请参考样例解释 示例1 输入 [3,1,2,5,2,4] 返回值 5 说明 示例2 输入 [4,5,1,3,2] ...
  • Java 定义数组到 Array

    2021-03-05 14:29:58
    定义数组:int [] arr; // 方法1int arr []; // 方法2初始化数组//赋初始化值int a [] = {1,2,3};for(int k:a){System.out.println(k);}//各自赋值int[] array1 = new int[10];array1[0]=1;// 生成一个随机数组for ...
  • 就是一个没有长度的数组,定义如下int data[] = new ...下面的例子,说明了零长度数组一个应用: 一个空的ArrayList比一个NUll好,程序中不用专门去做NULL的判断,直接拿来循环取值就行,虽然取不到.import java.util.*;...
  • 题目描述 给定一个无序数组arr,找到数组中未出现的最小正整数 例如arr = [-1, 2, 3, 4]。...import java.util.*; public class Solution { /** * 原地哈希,把数组中取值在1到n的数放到对应的位置, * 比如1.
  • Java打印Array数组的方法

    千次阅读 2021-02-12 23:45:54
    Java中打印Array数组的方法,这里主要总结了有四种:(1)通过循环打印数组(2)使用 Arrays.toString() 打印(3)使用 JDK 8 的 java.util.Arrays.stream() 打印(4)使用 Arrays.deepToString() 方法打印。如果数组中有...
  • Java数组详解

    千次阅读 多人点赞 2021-04-14 17:40:47
    int[] arr2 = Arrays.copyOf(arr1,arr1.length); System.out.println("拷贝的数组元素为:"+Arrays.toString(arr2)); } } 范围拷贝使用Arrays.copyOfRange(数组名,从开始下标,到结束下标) import java.util....
  • *java中删除下标之间的元素,百分之95都是含头不含尾。即{ ) */ public class _04Exercises { public static void main(String[] args) { //请设计一个方法,将一个int数组arr中指定的两个下标之间的元素删除 ...
  • Java中,无论使用数组或集合,都有边界检查。如果越界操作就会得到一个RuntimeException异常。2.数组只能保存特定类型。数组可以保存原生数据类型,集合则不能。集合不以具体的类型来处理对象,它们将所有对象都按...
  • Java(四)——数组

    2021-03-14 13:39:50
    一、遍历数组1、普通for循环遍历public static void main(String[] args){int[] arr = new int[]{1,2,3,4,5};// i为数组的索引for (int i =0; i < arr.length; i++){// arr.length 表示 数组arr的长度System.out....
  • Java之数组,循环

    2021-02-12 09:12:02
    break和continue的使用范围:continue只能用于循环结构,也就是说只要有continue,肯定存在循环.break用在switch语句和循环结构中.break和...只要它们的参数类型/参数个数/参数类型顺序不同,跟返回类型无关.Java中的数...
  • 日常Java练习题(每天进步一点点系列)

    千次阅读 多人点赞 2021-05-25 11:37:14
    今天来迟了,对等待的朋友们说声抱歉[求原谅],文章末尾有为大家争取到的CSDN官方独家出品的【Java工程师知识图谱】限时福利优惠,为成长助力!加油!天天进步一点点! 1、有以下代码片段: String str1=“hello”;...
  • if (arr == null || arr.length == 0) return; 那么,为什么要这样写呢? 1. int[] array = null; 表示的是数组为空,此时array不指向任何对象; 2. int[] array = new array[0]; 定义一个长度为0的数组; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 301,954
精华内容 120,781
关键字:

Javaarr