Skip to content

Commit dd8734e

Browse files
add interview cheatsheet
1 parent f4b306d commit dd8734e

File tree

1 file changed

+252
-0
lines changed

1 file changed

+252
-0
lines changed

interviewJavaCheatsheet.java

Lines changed: 252 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,252 @@
1+
/******************** String, char, Integer conversion ***************/
2+
[String to int]: Integer.parseInt(s); // return int primitive
3+
[String to Integer]: Integer.valueOf(s); // return an Integer Object
4+
[int to String]: String.valueOf(int)
5+
[char[] to String]: String str = new String(chArray);
6+
[list to array]: String[] arr = list.toArray(new String[list.size()]);
7+
[array to list]: List<String> list = Arrays.asList(arr);
8+
9+
/********************** String ***************************/
10+
String s = “a*b*c”;
11+
s.charAt(i);
12+
s.length();
13+
s.substring(0, 1); // [0, 1)
14+
s.substring(1); //[1, s.length)
15+
s.equals(“b”);
16+
s.compareTo(“b*c*d”); // return -1 because s comes first in lexicographical order
17+
s.trim(); // remove tailing and padding spaces
18+
s.indexOf(“a”); // return first index of substring “a” indexOf(substring)
19+
s.indexOf(‘a’, 2); // indexOf(int ch, fromIndex), indexOf(String str, fromIndex)
20+
s.lastIndexOf(‘a’); // also we can use s.lastIndexOf(String str)
21+
s.replaceAll(substr, target); // replace all substr to target in s
22+
23+
char[] arr = s.toCharArray();
24+
String[] arr = s.split("\\*") // when delimiter is '*'
25+
String[] arr = s.split("\\.") // when delimiter is '.'
26+
String res = String.join(String delimiter, List<String> data); // use the delimiter to concatenate the string in data.
27+
Objects.equals(Object a, Object b); // (1)if both parameters are null return true
28+
// (2)if exactly one parameter is null return false
29+
// (3)return the result of invoking the equals() method of the first parameter passing it the second parameter
30+
// This behaviour means it is "null safe".
31+
32+
/********************** StringBuilder ***************************/
33+
StringBuilder sb = new StringBuilder();
34+
sb.append(“a”);
35+
sb.insert(0, “a”); // sb.insert(int offset, char c) or sb.insert(offset, str)
36+
sb.deleteCharAt(int index);
37+
sb.reverse();
38+
sb.toString();
39+
sb.length(); // return the number of characters in sb, similar to str.length()
40+
41+
/********************** Array ***************************/
42+
int[] arr = new int[10];
43+
Arrays.sort(arr);
44+
Arrays.fill(arr, -1); // initialize all array elements with value -1
45+
public void helper(int[] nums);
46+
helper(new int[]{1, 2}); // initialize array in method
47+
48+
/********************** HashMap (TreeMap), HashSet (TreeSet)***********************/
49+
HashMap<Character, Integer> map = new HashMap<Character, Integer>();
50+
map.put('c', 1);
51+
map.get('c');
52+
map.getOrDefault(key, defaultValue); // if key exists return value, else return default value
53+
map.remove(‘c’); // remove key and its value
54+
map.computeIfAbsent(key, mappingFunction); // if key exists return value, else create a value by mappingFunction
55+
map.computeIfAbsent(key, k -> new HashSet<>()).add(val);
56+
map.computeIfAbsent(key, k -> new ArrayList<>()).add(val); // RECOMMENDED !!!
57+
if (map.containsKey('c')) { // check if key exists
58+
}
59+
if (map.containsValue(1)) { // check if value exists
60+
}
61+
for (Character d : map.keySet()) { // traverse key set
62+
}
63+
for (Integer i : map.values()) { // traverse value set
64+
}
65+
for(Map.Entry<Character, Integer> entry : map.entrySet()){ // traverse key-value pair
66+
entry.getKey();
67+
entry.getValue();
68+
}
69+
map.forEach((k,v) -> System.out.println("key: "+k+" value:"+v)); // traverse key-value pair using lamda expression to print out info
70+
71+
map.isEmpty();
72+
map.size();
73+
HashSet<Integer> set = new HashSet<Integer>();
74+
set.add(10);
75+
set.remove(10);
76+
if(set.contains(10)){
77+
}
78+
set.size();
79+
set.isEmpty();
80+
setA.retainAll(setB); // setA keeps the intersection of original setA and setB;
81+
setB.removeAll(setC); // Removes from this set all of its elements that are contained in the specified collection (setB - setC)
82+
setC.addAll(setD); // union two sets of setC and setD
83+
setC.containsAll(setD); // Returns true if this set contains all of the elements of specified collection
84+
Object[] arr = setA.toArray(); // Returns an array containing all of the elements in this set.
85+
86+
TreeMap<Integer, String> map = new TreeMap<>(); // key’s ascending order (default)
87+
map.put(2, “b”);
88+
map.put(1, “a”);
89+
map.put(3, “c”);
90+
for(String str : map.values()) // traverse in “a” “b” “c” order
91+
for(Integer num : map.keySet()) // traverse in 1, 2, 3 order
92+
93+
TreeMap<String, Integer> treeMap = new TreeMap<>(); // sorted in lexicographical order
94+
TreeMap<Integer, Integer> treeMap = new TreeMap<>(Collections.reverseOrder()); // descending order
95+
96+
treeMap.lowerKey(k); // return the max key that < k
97+
treeMap.floorKey(k); // return the min key that >= k
98+
treeMap.higherKey(k); // return the min key that > k
99+
treeMap.ceilingKey(k); // return the max key that <= k
100+
treeMap.firstKey(); // returns the first (lowest) key currently in this map.
101+
SortedMap<K,V> portionOfTreeMap = treeMap.headMap(K toKey); // Returns a view of the portion of this map whose keys are strictly less than toKey.
102+
NavigableMap<K,V> map = treeMap.headMap(toKey, true); // Returns a view of the portion of this map whose keys are less than or equal to toKey.
103+
104+
Set<Integer> treeSet = new TreeSet<>(); // sort in ascending order by default
105+
treeSet.lower(Integer e); // return greatest element that is < e, or null if no such element
106+
treeSet.floor(Integer e); // return greatest element that is <= e, or null if no such element
107+
treeSet.ceiling(Integer e); // return smallest element that is >= e, or null if no such element
108+
treeSet.higher(Integer e); // return smallest element that is > e, or null if no such element
109+
treeSet.first(); // return the first element in the treeset (if min set, return minimum element)
110+
treeSet.last(); // return the last element in the treeset
111+
112+
/********************** LinkedHashMap, LinkedHashSet *************/
113+
Map<Integer,String> map = new LinkedHashMap<>();
114+
map.put(1, "first");
115+
map.put(2, "second");
116+
map.put(3, "third");
117+
for(Map.Entry<Integer,String> entry : map.entrySet())
118+
System.out.println(entry.getKey(), entry.getValue()); // print order: 1, 2, 3
119+
Set<Integer> set = new LinkedHashSet<>();
120+
121+
/********************** List, ArrayList, LinkedList *************/
122+
List<Integer> list = new ArrayList<>();
123+
list.add(14);
124+
list.add(0, 10); // list.add(int index, int value);
125+
list.get(int index);
126+
list.remove(list.size() - 1);
127+
list.set(int index, int val); // replaces element at index and returns original
128+
list.indexOf(Object o); // return first index of occurrence of specified element in the list; -1 if not found
129+
list.subList(int fromIndex, int toIndex); // return a sublist within range [fromIndex, toIndex)
130+
Collections.sort(list); // ascending order by default
131+
Collections.sort(list, Collections.reverseOrder()); // descending order
132+
Collections.sort(list, new Comparator<Integer>() {
133+
@Override
134+
public int compare(Integer o1, Integer o2) { // the Integer can be any Object instead
135+
return o1o2;// 0‐>1
136+
// return o2‐o1; 1‐>0
137+
}
138+
});
139+
list.forEach(num -> system.out.println(num)); // traverse the list and print out by using lamda function
140+
141+
/********************** Stack, Queue, PriorityQueue, Deque ***********************/
142+
Stack<Integer> stack = new Stack<Integer>();
143+
stack.push(10);
144+
stack.pop();
145+
stack.peek();
146+
stack.isEmpty();
147+
stack.size();
148+
Queue<Integer> q = new LinkedList<Integer>();
149+
q.offer(10); // q.add() is also acceptable
150+
q.poll();
151+
q.peek();
152+
q.isEmpty();
153+
q.size();
154+
PriorityQueue<Integer> pq = new PriorityQueue<>(); // minimum Heap by default
155+
PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder()); // change to maximum Heap
156+
pq.add(10);
157+
pq.poll();
158+
pq.peek();
159+
pq.isEmpty();
160+
pq.size();
161+
class Node implements Comparable<Node>{
162+
int x;
163+
int y;
164+
public Node(int x, int y){
165+
this.x = x;
166+
this.y = y;
167+
}
168+
@Override
169+
public int compareTo(Node that){
170+
return this.x - that.x; // ascending order / minimum Heap
171+
// return that.x - this.x; // descending order / maximum Heap
172+
}
173+
}
174+
PriorityQueue<Node> pq = new PriorityQueue<>();
175+
176+
import java.util.Deque;
177+
Deque<Integer> dq = new LinkedList<Integer>(); // Deque is usually used to implement monotone queue
178+
dq.addFirst(); // dq.offerFirst();
179+
dq.addLast(); // dq.offerLast();
180+
dq.peekFirst(); //
181+
dq.peekLast();
182+
dq.pollFirst(); // dq.removeFirst();
183+
dq.pollLast(); // dq.removeLast();
184+
185+
/************************** Random method *****************************/
186+
Random rand =new Random(); // initialize Random object
187+
int i = rand.nextInt(100); // generate random number in [0, 100)
188+
float f = rand.nextFloat(); // generate float value in [0, 1)
189+
double d = rand.nextDouble(); // generate double value in [0.0, 1.0)
190+
191+
/************************** Math *****************************/
192+
Math.pow(double x, double y); // return x^y
193+
Math.round(float a); // returns the closest int to the argument
194+
Math.abs(int/float/doubld val);
195+
Math.sqrt();
196+
Math.sin(double rad); // input is rad not angle
197+
Math.PI;
198+
Math.E;
199+
200+
/************************** Collections/Object *****************************/
201+
Collections.nCopies(100, new Object[]{true});// return an immutable list which contains n copies of given object
202+
getClass() // Returns the runtime class of this {@code Object}
203+
Collections.singletonList() // use it to replace Arrays.asList() when there is only one element
204+
Collections.unmodifiableSet(new HashSet<>()) // returns an unmodifiable view of the specified set. Note that, changes in specified set will be reflected in unmodifieable set.
205+
// Also, any modification on unmodifiableSet is not allowed, which triggers exception.
206+
Collections.swap(List, int i, int j); // swap the ith and jth element in list
207+
208+
/********************* std input/output file read/write ************************/
209+
import java.io.*;
210+
import java.net.*;
211+
Scanner in = new Scanner(System.in);
212+
int n = in.nextInt();
213+
while(in.hasNext()){
214+
String str = in.nextLine();
215+
}
216+
217+
String inputfile="in.txt";
218+
String outputfile="out.txt";
219+
try
220+
{
221+
BufferedReader in = new BufferedReader(new FileReader(inputfile));
222+
line = in.readLine();
223+
while (line!=null)
224+
{
225+
// do something with line
226+
line=in.readLine();
227+
}
228+
in.close(); // close the file
229+
} catch (IOException e)
230+
{
231+
e.printStackTrace();
232+
}
233+
234+
try{
235+
BufferedWriter out = new BufferedWriter(new FileWriter(outputfile));
236+
for(String str : map.keySet()){
237+
out.write(str + " " + map.get(str));
238+
out.newLine();
239+
}
240+
out.close(); // close the file
241+
}catch (IOException e)
242+
{
243+
e.printStackTrace();
244+
}
245+
246+
URL wordlist = new URL("http://foo.com/wordlist.txt");
247+
BufferedReader in = new BufferedReader(new InputStreamReader(wordlist.OpenStream()));
248+
String inputLine = null;
249+
List<String> res = new ArrayList<>();
250+
while((inputLine = in.readLine()) != null){
251+
res.add(inputLine);
252+
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy