java编程中常用的API

编程

Q:List怎么转数组?

A:

使用list.toArray(T[] )接口

注意先建数组再转, 直接转是错误的,因为他是object类型。

       List<Integer> list = new ArrayList<Integer>();

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<Integer> unModifyList1 = Arrays.<Integer>asList(1,2,3,4);

// 数组变量方式,注意不能为int[],否则会类型不正确

// 这种方式生成的list不可变

Integer[] arr = {1,2,3,4};

List<Integer> unModifyList2 = Arrays.<Integer>asList(arr);

// 这种方式生成的list可变

List<Integer> canModifyList = new ArrayList<Integer>(Arrays.asList(arr));


Q:

怎么初始化list并填充初始值

A:

使用Collections.nCopies

注意new ArrayList<>(8,1);并不是指填充了8个1。

        List<Integer> fillList = new ArrayList<Integer>(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<Node> {

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<String> queue = new LinkedList<String>();

queue.offer("abc")

String outStr = queue.poll();


以上是 java编程中常用的API 的全部内容, 来源链接: utcz.com/z/518208.html

回到顶部