【DataStructure】Some useful methods for arrays

Last night it took me about two hours to learn arrays. For the sake of less time, I did not put emphaises on the practice question, just now when reading the book, I found that some methods
referred to arrays are so beneficial to us. So in here make a simple summary.

Method 1: Check whether the array is sorted.

  private static boolean isSorted(int[] a) {
    if (a.length < 2) {
      return true;
    }
    for (int i = 1; i < a.length; i++) {
      if (a[i] < a[i-1]) {
        return false;
      }
    }
    return true;
  }
}

Method 2:  Use the start number and range to init the array

  public static void load(int[] a, int start, int range) {
    for (int i = 0; i < a.length; i++) {
      a[i] = start + random.nextInt(range);  // random 5-digit numbers
    }
  }

Method 3:  Get the min number from the array

  private static int minimum(int[] a) {
    int min = a[0];
    for (int i = 1; i < a.length; i++) {
      if (a[i] < min) {
        min = a[i];
      }
    }
    return min;
  }

Method 4: Remove the duplicate elements from object

  private static int[] withoutDuplicates(int[] a) {
    int n = a.length;
    if (n < 2) {
      return a;
    }
    for (int i = 0; i < n-1; i++) {
      for (int j = i+1; j < n; j++) {
        if (a[j] == a[i]) {
          --n;
          System.arraycopy(a, j+1, a, j, n-j);
          --j;
        }
      }
    }
    int[] aa = new int[n];
    System.arraycopy(a, 0, aa, 0, n);
    return aa;
  }

Method 5: Finds the prime number according to certain range

  private static final int SIZE=1000;
  private static boolean[] isPrime = new boolean[SIZE];

  private static void initializeSieve() {
      for (int i = 2; i < SIZE; i++) {
        isPrime[i] = true;
      }
      for (int n = 2; 2*n < SIZE; n++) {
        if (isPrime[n]) {
          for (int m = n; m*n <SIZE; m++) {
            isPrime[m*n] = false;
          }
        }
      }
    }

Another way of implement the function of finding the prime number(Vector)

  private static final int SIZE=1000;
  private static Vector<Boolean> isPrime = new Vector<Boolean>(SIZE);

  private static void initializeSieve() {
    isPrime.add(false);  // 0 is not prime
    isPrime.add(false);  // 1 is not prime
    for (int i = 2; i < SIZE; i++) {
      isPrime.add(true);
    }
    for (int n = 2; 2*n < SIZE; n++) {
      if ((isPrime.get(n))) {
        for (int m = n; m*n < SIZE; m++) {
          isPrime.set(m*n, false);
        }
      }
    }
  }

Another way of implement the function of finding the prime number(BitSet)

  private static final int SIZE=1000;
  private static BitSet isPrime = new BitSet(SIZE);

  private static void initializeSieve() {
      for (int i = 2; i < SIZE; i++) {
        isPrime.set(i);
      }
      for (int n = 2; 2*n < SIZE; n++) {
        if (isPrime.get(n)) {
          for (int m = n; m*n <SIZE; m++) {
            isPrime.clear(m*n);
          }
        }
      }
    }

Method 6: Print out the result according to the certain format:

 public static void printSieve() {
    int n=0;
    for (int i = 0; i < SIZE; i++) {
      if (isPrime[i]) {
        System.out.printf("%5d%s", i, ++n%16==0?"\n":"");
      }
    }
    System.out.printf("%n%d primes less than %d%n", n, SIZE);
  }

Notes: There exists five spaces between each number, and it will change line when the length of char  % 6 is zero.

  2    3    5    7   11   13   17   19   23   29   31   37   41   43   47   53
   59   61   67   71   73   79   83   89   97  101  103  107  109  113  127  131
  137  139  149  151  157  163  167  173  179  181  191  193  197  199  211  223
  227  229  233  239  241  251  257  263  269  271  277  281  283  293  307  311
  313  317  331  337  347  349  353  359  367  373  379  383  389  397  401  409
  419  421  431  433  439  443  449  457  461  463  467  479  487  491  499  503
  509  521  523  541  547  557  563  569  571  577  587  593  599  601  607  613
  617  619  631  641  643  647  653  659  661  673  677  683  691  701  709  719
  727  733  739  743  751  757  761  769  773  787  797  809  811  821  823  827
  829  839  853  857  859  863  877  881  883  887  907  911  919  929  937  941
  947  953  967  971  977  983  991  997

【DataStructure】Some useful methods for arrays

时间: 2024-11-08 23:50:37

【DataStructure】Some useful methods for arrays的相关文章

【DataStructure】Some useful methods about linkedList(三)

Method 4: Gets the value of element number i For example, if list is {22, 33, 44, 55, 66, 77, 88, 99}, then get(list, 2) will return 44. Solution 1: static int get(Node list, int i) { if (i < 0) { throw new IllegalArgumentException(); } for (int j =

【DataStructure】Some useful methods about linkedList(二)

Method 1: Add one list into the other list. For example, if list1is {22, 33, 44, 55} and  list2 is {66, 77, 88, 99},then append(list1, list2)will change list1to {22, 33, 44, 55, 44, 66, 77, 88, 99}. static void append(Node list1, Node list2) { if (li

【DataStructure】Some useful methods about linkedList.

/** * Method 1: Delete the input element x * and meanwhile keep the length of array after deleted n * @param a  the array * @param n  the length of array after deleted. * @param x  the element that need to be deleted. */ static void delete(int[] a, i

【DataStructure】 Five methods to init the List in java

Do you know how to init list in other way except for new object? The following will give you serveral tips. If having other great idea, you are welcome to share. [java] view plaincopy import java.util.ArrayList; import java.util.Arrays; import java.u

【dataStructure】 Arrays and Java Source Review

According to the order of data structure book, Arrays should be introduced in the frist time. When reviewing the some information related to arrays, I feel shocked that many useful classes and methods in java language has been ignored. Now set a simp

【DataStructure】The difference among methods addAll(),retainAll() and removeAll()

In the Java collection framework, there are three similar methods, addAll(),retainAll() and removeAll().  addAll(), the retainAll(), and the removeAll()methods are equivalent to the set theoretic union,  intersection, and complement operators, respec

【DataStructure】Charming usage of Set in the java

In an attempt to remove duplicate elements from list, I go to the lengths to take advantage of  methods in the java api. After investiagting the document of java api, the result is so satisfying that I speak hightly of wisdom of developer of java lan

【DataStructure】The description of generic collections

In this blog, generic collections will be talked about  in details.  In the past bacause of shortage of generic argument,  less importance has been attached to the this module. Just now after reading the chapter about this knowledge, I gradually real

【DataStructure】A useful util class for reading and writing files

Faced with the upcoming exam, Some useful methods referred to file operation drew tremenous attention. Now I make a summary to reading file. [java] view plaincopy import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; impo