src/main/java/me/zzp/util/Seq.java
public static int[] assignAt(int[] a, Integer[] indexes, int... values) {
    if (indexes.length != values.length) {
      throw new IllegalArgumentException(String.format("index.length(%d) != values.length(%d)", indexes.length, values.length));
    }
    for (int i = 0; i < indexes.length; i++) {
      int index = indexes[i];
      if (0 <= index && index < a.length) {
        a[index] = values[i];
      } else if (-a.length <= index && index < 0) {
        a[a.length + index] = values[i];
      } else {
        throw new ArrayIndexOutOfBoundsException(index);
      }
    }
    return a;
  }
public static int[] assignAt(int[] a, Integer[] indexes, int... values) {
    if (indexes.length != values.length) {
      throw new IllegalArgumentException(String.format("index.length(%d) != values.length(%d)", indexes.length, values.length));
    }
    for (int i = 0; i < indexes.length; i++) {
      int index = indexes[i];
      if (0 <= index && index < a.length) {
        a[index] = values[i];
      } else if (-a.length <= index && index < 0) {
        a[a.length + index] = values[i];
      } else {
        throw new ArrayIndexOutOfBoundsException(index);
      }
    }
    return a;
  }
public static int [ ] assignAt ( int [ ] a , Integer [ ] indexes , int ... values ) { if ( indexes . length != values . length ) { throw new IllegalArgumentException ( String . format ( "index.length(%d) != values.length(%d)" , indexes . length , values . length ) ) ; } for ( int i = 0 ; i < indexes . length ; i ++ ) { int index = indexes [ i ] ; if ( 0 <= index && index < a . length ) { a [ index ] = values [ i ] ; } else if ( - a . length <= index && index < 0 ) { a [ a . length + index ] = values [ i ] ; } else { throw new ArrayIndexOutOfBoundsException ( index ) ; } } return a ; }
同时给int数组中多个位置同时赋值。

@param a 给定int数组。
@param indexes 待赋值的位置下标。
@param values 与下标一一对应的int值。
@return 返回赋值后的新int数组。
同时给int数组中多个位置同时赋值。