Some Common Use

If string is null, we cannot use string.length()

Java Timing

long startTime = System.nanoTime();
function performed
long endTime = System.nanoTime();
long totalTime = (endTime - startTime) / 1000000000.0;
System.out.println(totalTime);

Charater to Integer

Character.getNumericValue(c)
It returns -1 if the character is not a digit.
int result = c - '0'

is Character a integer

  System.out.println(Character.isDigit('c'));
  System.out.println(Character.isDigit('5'));

Integer to Character

int a = 1;
char b = (char)(a + '0');

Integer to String

Integer.toString(number) String.valueOf(number)

String to Integer

int foo = Integer.parseInt("1234");
(If you have it in a StringBuffer, you'll need to do Integer.parseInt(myBuffer.toString()); instead).
Integer x = Integer.valueOf(str);

String[] arrays 转化成string

Arrays.toString();

Character.toLowerCase()

Character.toUpperCase()

Arrays.binarySearch(dp, 0, len, nums[i]) Arrays.binarySearch(dp, nums[i])


public class ArrayDemo {

   public static void main(String[] args) {

   // initializing unsorted int array
   int intArr[] = {30,20,5,12,55};

   // sorting array
   Arrays.sort(intArr);

   // let us print all the elements available in list
   System.out.println("The sorted int array is:");
   for (int number : intArr) {
   System.out.println("Number = " + number);
   }

   // entering the value to be searched
   int searchVal = 12;

   int retVal = Arrays.binarySearch(intArr,searchVal);

   System.out.println("The index of element 12 is : " + retVal);
   }
}
Let us compile and run the above program, this will produce the following result:

The sorted int array is:
Number = 5
Number = 12
Number = 20
Number = 30
Number = 55
The index of element 12 is : 1

sort reverse order

对于array与arraylist

array 进行 reverseOrder sort必须是Integer这种type,不能是primitive Arrays.sort(arraylist, Collections.reverseOrder()); Collections.sort(arraylist, Collections.reverseOrder());

arrays to arraylist

public class ArrayDemo1 {
   public static void main (String args[]) {

   // create an array of strings
   String a[] = new String[]{"abc","klm","xyz","pqr"};

   List list1 = Arrays.asList(a);

   // printing the list
   System.out.println("The list is:" + list1);
   }
}


The list is:[abc, klm, xyz, pqr]

Copy array

    int[] a = {1,2,3};
    int[] b = Arrays.copyOfRange(a, 0, a.length);

array 初始化

        int[] dp = new int[n + 1];
        Arrays.fill(dp, Integer.MAX_VALUE);

使用二进制运算要注意

  • 很可能bug就是一些小错误造成的
  • 比如(nums[i] & xor) == 0
  • 如果携程了 nums[i] & xoe == 0 就错误了

Java Random

1. Using Math.random()

double random = Math.random() * 50 + 1;
or
int random = (int )(Math.random() * 50 + 1);

This will give you value from 1 to 50 using Math.random()

Why?

random() method returns a random number between 0.0 and 0.999. So, you multiply it by 50, so upper limit becomes 0.0 to 49.95, when you add 1, it becomes 1.0 to 50.95, now when you you truncate to int, you get 1 to 50. (thanks to @rup in comments). leepoint's awesome writeup on both the approaches.

2. Using Random class in Java.

Random rand = new Random();
int value = rand.nextInt(50); // 也可以使用rand.nextDouble() nextLong()
This will give value from 0 to 49.

For 1 to 50: rand.nextInt(50) + 1;

Generic注意事项

Generic array creation is disallowed in Java

Item[] a = new Item[capacity];
这样写就会错误了
要
Item[] a = (Item[]) new Object[capacity];

ArrayList remove注意事项

我们知道remove有两种
一种是E remove(int index)
一种是boolean remove(Object o)
使用的时候要注意
我们常常在使用remove(index),参考写的DFS
list.remove(Integer.valueOf(2));
list.remove(list.indexOf(2));
You could use list.remove(new Integer(0)) to surely remove the object
List<Integer> intList = new ArrayList<Integer>(Arrays.asList(intArray));

results matching ""

    No results matching ""