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的更多相关文章

  1. 【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 { ...

  2. 【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 ...

  3. 【DataStructure】Some useful methods about linkedList.

    /** * Method 1: Delete the input element x  * and meanwhile keep the length of array after deleted n ...

  4. 【DataStructure】Description and usage of queue

    [Description] A queue is a collection that implements the first-in-first-out protocal. This means th ...

  5. 【DataStructure】Description and Introduction of Tree

    [Description] At ree is a nonlinear data structure that models a hierarchical organization. The char ...

  6. 【DataStructure】One of queue usage: Simulation System

    Statements: This blog was written by me, but most of content  is quoted from book[Data Structure wit ...

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

    In the Java collection framework, there are three similar methods, addAll(),retainAll() and removeAl ...

  8. 【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  meth ...

  9. 【leetcode】Median of Two Sorted Arrays

    题目简述: There are two sorted arrays A and B of size m and n respectively. Find the median of the two s ...

随机推荐

  1. 源码安装apache及配置转发

    一.    安装Apache a)    解压:tar -xvf httpd-*; b)    ./configure --prefix=/usr/oracle/apache CC="gcc ...

  2. SpringSecutiry权限管理手册

    SpringSecutiry权限管理手册: 请见以下URL: http://www.mossle.com/docs/auth/html/preface.html Spring Security 参考文 ...

  3. 【原创】java中的父进程子进程 —— 坑爹的java Runtime.getRuntime().exec

    最近有一个需求,需要用一个java进程启动多个子进程来完成并发任务.由于必须给用户完成任务的反馈,所以需要父进程记录子进程的生命周期. exec方法返回一个Process对象,在当前进程内调用该对象的 ...

  4. MIPS台OpenWrt在系统内的路由器Rust应用程序开发

    笔者:Liigo(庄小莉) 迄今:2014年9一个月17日本 (9一个月29日更新,11一个月19日本再次更新.在最后可用更新) 原文链接:http://blog.csdn.net/liigo/art ...

  5. Java代码检查工具

    FindBugs:不注重样式和格式,重视真正的缺陷和潜在的性能问题,,基于Bug Patterns,在不运行的情况下检查字节码代码质量. Jalopy:Java源代码格式化工具,可自定义规则. PMD ...

  6. jdk阅读xml文件

    前言 你需要阅读的时间来写一个通用组件xml文件,但考虑到组件分布更容易,这样一来在第三方小引用jar包.因此,直接jdk内建的xml分析方法.可能都没有第三发的组件强大. 导入的文件: import ...

  7. Git Flow流程

    # 1. clone远程仓库到本地 git clone git@git.oschina.net:huogh/muzhifm_xxx.git ​ # 2. 使用远程分支origin/dev创建本地分支d ...

  8. 黑马day11 脏读数据&amp;解

    数据库: create table account ( id int primary key auto_increment, name varchar(20), money double ); ins ...

  9. Windows 8实例教程系列 - 数据绑定基础实例

    原文:Windows 8实例教程系列 - 数据绑定基础实例 数据绑定是WPF,Silverlight以及Windows Phone应用开发中最为常用的开发技术,在基于XAML的Windows Stor ...

  10. Minimum Sum LCM(uva10791+和最小的LCM+推理)

    L - Minimum Sum LCM Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submi ...