1.反转List
使用Collections.reverse()
/**
* Reverses the order of the elements in the specified list.<p>
*
* This method runs in linear time.
*
* @param list the list whose elements are to be reversed.
* @throws UnsupportedOperationException if the specified list or
* its list-iterator does not support the <tt>set</tt> operation.
*/
@SuppressWarnings({"rawtypes", "unchecked"})
public static void reverse(List<?> list) {
int size = list.size();
if (size < REVERSE_THRESHOLD || list instanceof RandomAccess) {
for (int i=0, mid=size>>1, j=size-1; i<mid; i++, j--)
swap(list, i, j);
} else {
// instead of using a raw type here, it's possible to capture
// the wildcard but it will require a call to a supplementary
// private method
ListIterator fwd = list.listIterator();
ListIterator rev = list.listIterator(size);
for (int i=0, mid=list.size()>>1; i<mid; i++) {
Object tmp = fwd.next();
fwd.set(rev.previous());
rev.set(tmp);
}
}
}
2. double类型转int类型
double a = 2.333
int b = new Double(a).intValue();
3. 求平方
Math.pow()
/**
* Returns the value of the first argument raised to the power of the
* second argument.
* Results must be semi-monotonic.
*
* @param a the base.
* @param b the exponent.
* @return the value {@code a}<sup>{@code b}</sup>.
*/
public static double pow(double a, double b) {
return StrictMath.pow(a, b); // default impl. delegates to StrictMath
}
第一个参数是底数,第二个参数是指数。pow(a,b)
返回 ab 。
4. ArrayList和数组 相互转换
4.1 ArrayList —— 数组
List<String> list = new ArrayList<String>();
String[] arr = list.toArray(new String[list.size()]);
并不是所有类型的ArrayList都可以转化为数组:list.toArray(new int[])
就是错误的,编译会报错。如果一定要进行这种类型的转换,可以用循环赋值的方法。
4.2 数组 —— ArrayList
String[] arr = new String[];
List<String> list = Arrays.asLink(arr);
5. HashMap哈希表按值排序
public class TestHashMapSort {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
map.put("a",1);
map.put("b",2);
map.put("c",3);
map.put("d",4);
//降序排序
ArrayList<String> list = new ArrayList<>(map.keySet());
Collections.sort(list, (a,b) -> map.get(b) - map.get(a));
//升序排序
ArrayList<String> list = new ArrayList<>(map.keySet());
Collections.sort(list, (a,b) -> map.get(a) - map.get(b));
}
}
创建HashMap的键list
,根据值将list
中的键排序,用排好序的键去搜索HashMap。