编程语言-java中的一些用法

1. java中的PriorityQueue允许自定义comparator来定义PriorityQueue中的元素是按怎样的规则排序 插入到heap中的。

用法: 

PriorityQueue<ListNode> queue= new PriorityQueue<ListNode>(lists.size(),new Comparator<ListNode>(){
            @Override
            public int compare(ListNode o1,ListNode o2){
                if (o1.val<o2.val)
                    return -1;
                else if (o1.val==o2.val)
                    return 0;
                else 
                    return 1;
            }
        });
        

两个参数:capacity (pq的初始大小), comparator.

PriorityQueue添加元素: add(o) or offer(o); 区别: add()来自Collections, offer()来自Queue, 若queue的capacity事先指定,则add()永远返回true, 但offer()可能返回false,表示无法添加此元素。在priorityQueue中,两个方法同义。

poll() :Retrieves and removes the head of this queue, or returns null if this queue is empty.


remove
(Object o)
Removes a single instance of the specified element from this queue, if it is present.
poll()
Retrieves and removes the head of this queue, or returns  null if this queue is empty.
peek()
Retrieves, but does not remove, the head of this queue, or returns  null if this queue is empty.

总结起来,添加元素用offer(o), 删除队头元素用poll(), 查看队头元素但不删除用peek()

2. 有时需要将array中的元素全部加到ArrayList中,通过??

 或者将List中的元素全部加到Set中,在创建set的时候把要复制的list作为参数。

Set<String> wordSet = new HashSet<>(wordDict);

3. 遍历Hashmap:

Map<Integer, Integer> map = new HashMap<>();

map.put(1,2);

//iterate over entries

Iterator iter = map.entrySet().iterator();

while(iter.hasNext()){

Map.Entry<Integer, Integer> entry = (Map.Entry)iter.next();

int key = entry.getKey();

int val = entry.getValue();

}

//iterate over keys

Iterator keyIter = map.keySet().iterator();

// iterate over values

Iterator valIter = map.valueSet().iterator();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值