判断字符大小写方法以及对Map搜索值、优先队列、Map.Entry对象集与map.entrySet()取(k、v)值、队列的进出方法

本文深入探讨了Java集合框架中的队列操作,如`offer()`、`poll()`和`peek()`方法,以及如何使用`Character`类进行字符大小写的判断。此外,还介绍了`Map`接口的`getOrDefault()`方法在统计数组中相同值出现次数的应用。同时,讲解了优先队列`PriorityQueue`的实现原理,并展示了如何通过`Map.Entry`获取Map的键值对。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符判断大小

Boolean Character.isLowerCase(char ch)
判断字符是否为小写(小写返回true)

Boolean Character.isUpperCase(char ch)
判断字符是否为大写(大写返回true)

if( Character.isLowerCase(str.charAt(i)) ^ Character.isLowerCase(str.charAt(1)) )
判断字符串第i个字符与字符串第1个字符串是否为相同大小写
异或运算法则是相同部位相同取0否则取1

队列方法

boolean offer(E e)方法->队列末尾添加元素

queue.offer("one");
queue.offer("two");
queue.offer("three");
queue.offer("four");
System.out.println(queue);//[one, two, three, four]

E poll()方法->取队首元素并出队

String str = queue.poll();
System.out.println(str);  //one
System.out.println(queue);  //[two, three, four]

E peek()方法->队首元素不出队

str = queue.peek();
System.out.println(str);   //two
System.out.println(queue);  //[two, three, four]
System.out.println("开始遍历!");  //输出:开始遍历!

add()与offer():在队尾增加元素,add方法在队列满会抛出队列已满异常,offer方法返回false表示队列已满。
remove()与poll():删除队列的头元素,remove方法在队列为空的情况下将抛异常,poll方法将返回null。
element()与peek():都是返回队列的头元素,但不删除头元素,element方法在队列为空的情况下,将抛异常,而peek方法将返回null。

Map搜索值

//map.getOrDefault(k,v)
//获取map中k的value值并返回,如果map中没有k值返回给定的v值。方法便于统计数组中相同值的数
public static void main(String[] args) {
		int nums[]= {11,1,1,5,3,2,3,8,6,4};
		Map <Integer,Integer> map = new HashMap <Integer,Integer>();
		for(int num : nums) {
			map.put(num,map.getOrDefault(num, 0)+1);
		}
		System.out.print(map);
	}

输出

{1=2, 2=1, 3=2, 4=1, 5=1, 6=1, 8=1, 11=1}

优先队列PriorityQueue

小顶堆

PriorityQueue<Integer> queue = new PriorityQueue<Integer>(new Comparator<Integer>(){
	@Override
	public int compare(Integer o1, Integer o2){
		return o1.compareTo(o2);
	}
});

Map.Entry对象集与map.entrySet()取(k、v)值

Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();  
  while (it.hasNext()) {  
   Map.Entry<String, String> entry = it.next();  
   System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());  

entrySet()效率高于keySet()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值