精选30+云产品,助力企业轻松上云!>>>
Q:List怎么转数组?
A:
使用list.toArray(T[] )接口
注意先建数组再转, 直接转是错误的,因为他是object类型。
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
// 转为object,注意list.toArray()只能转为Object[]
Object[] objectArr = list.toArray();
// 转为对应类型的arr
Integer[] intArr = new Integer[list.size()];
list.toArray(intArr);
System.out.println(Arrays.toString(objectArr));
System.out.println(Arrays.toString(intArr));
Q: 数组怎么转list
A:
利用Arrays.toList(T[])
// 直接创建的方式
List unModifyList1 = Arrays.asList(1,2,3,4);
// 数组变量方式,注意不能为int[],否则会类型不正确
// 这种方式生成的list不可变
Integer[] arr = {1,2,3,4};
List unModifyList2 = Arrays.asList(arr);
// 这种方式生成的list可变
List canModifyList = new ArrayList(Arrays.asList(arr));
Q:
怎么初始化list并填充初始值
A:
使用Collections.nCopies
注意new ArrayList<>(8,1);并不是指填充了8个1。
List fillList = new ArrayList(Collections.nCopies(5,1));
System.out.println(fillList);
Collections.fill(fillList, 2);
System.out.println(fillList);
Q:
如何反转list
A:
使用Collections.reverse(list)
如何反转字符串?
我自己用的是StringBuilder里的反转(好羡慕python处理字符串时的简单)
String reverStr = new StringBuilder(str).reverse().toString();
Q: 如何对list做排序(重要)
A:
数组用Arrays.sort(数组)
list用Collection.sort(list)
排序的元素要实现comparator接口。对于基本类型都是升序排序,string则按照字典序升序。
Q: 自定义排序
A:
实现Comparable接口
在comparable接口中,有个输入的对象other
可以理解为排序时
外界other放到自己后面,然后和自己比较
如果满足返回值大于0,则交换自己和外界o对象的位置
那么这里x<0.x,则交换,所以大的在前面。 优先队列同理,变成大顶堆
static class Node implements Comparable {
int x;
public Node(int x) {
this.x = x;
}
public int compareTo(Node other) {
if (x < other.x) {
return 1;
} else if (x > other.x){
return -1;
} else {
return 0;
}
}
}
Q: java的队列
A:
注意队列的实现是LinkedList, 入队是offer,出队是pool
Queue queue = new LinkedList();
queue.offer("abc")
String outStr = queue.poll();