您的位置:首页 > 游戏 > 手游 > 微信app下载安装苹果手机_市场监督管理局是工商局吗_广州信息流推广公司_网络销售靠谱吗

微信app下载安装苹果手机_市场监督管理局是工商局吗_广州信息流推广公司_网络销售靠谱吗

2024/12/23 14:13:22 来源:https://blog.csdn.net/qq_42581685/article/details/140596102  浏览:    关键词:微信app下载安装苹果手机_市场监督管理局是工商局吗_广州信息流推广公司_网络销售靠谱吗
微信app下载安装苹果手机_市场监督管理局是工商局吗_广州信息流推广公司_网络销售靠谱吗

文章目录

  • 变长数组:List
  • 字符串:string
  • 队列:
    • queue 普通队列
    • PriorityQueue 优先队列
  • Map

变长数组:List

int[] nums;
// 普通数组转为对象数组
Integer[] integerArray = Arrays.stream(nums) // 创建流.boxed() // 装箱 int -> Integer.toArray(Integer[]::new); // 转换为 Integer[]
// 转为List,注意这样得到的是不可变的list,即list无法add sort
List<Integer> list = Arrays.stream(nums).boxed().toList();
// 这样得到的才是可变的
List<Integer> list = new ArrayList<>(Arrays.stream(nums).boxed().toList());
// 少量数据可以这样转
List<Integer> list = Arrays.asList(nums[0], nums[1], nums[2]);

字符串:string

String str = "123/456/789";
String[] strs = str.split("/");	// 根据符号切分成数组
for (String s : strs) {System.out.println(s);
}str = str.replace("123", "233");  // 123替换成233,注意要返回
System.out.println(str);str = str.substring(1, 3);  // 获取子字符串,下标从[1, 3)
System.out.println(str);

队列:

queue 普通队列

Queue<Integer> queue = new LinkedList<>();queue.size(); // 返回元素个数 时间O(1)
queue.isEmpty(); // a为空返回true 时间O(1)queue.add(1); // 向队头插入,错误抛异常
int h1 = queue.remove(); // 返回第一个元素,并在队列中删除,错误抛异常
int h2 = queue.element(); // 返回第一个元素,不删除queue.offer(1); // 向队头插入,不抛异常
int h3 = queue.poll(); // 返回第一个元素,并在队列中删除,不抛异常
int h4 = queue.peek(); // 返回第一个元素,不删除for(Integer q : queue){System.out.println(q);
}

PriorityQueue 优先队列

用堆实现

// 初始大小11,默认小根堆,堆顶是最小的
static PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(100);
public void work() {// 压入元素,add和offer在java 17中一样priorityQueue.add(3);priorityQueue.add(2);priorityQueue.offer(1);// [1, 3, 2]System.out.println(priorityQueue);// 堆顶System.out.println(priorityQueue.peek());// 删除指定元素priorityQueue.remove(2);System.out.println(priorityQueue);// 弹出堆顶priorityQueue.poll();System.out.println(priorityQueue);// 遍历堆Iterator<Integer> iterate = priorityQueue.iterator();while(iterate.hasNext()) {System.out.print(iterate.next());System.out.print(", ");}System.out.println();// 堆大小System.out.println(priorityQueue.size());// 判断是否为空System.out.println(priorityQueue.isEmpty());// 查找是否在堆中System.out.println(priorityQueue.contains(3));// 小根堆改成大根堆// 比较器返回值:<0代表o1排前面;>0代表o2排前面;=0代表相等// 返回值o2-o1,<0代表o2<o1时o1排前面;>0代表o2>o1时o1排前面;从而实现大根堆priorityQueue = new PriorityQueue<>((o1, o2) -> o2 - o1);priorityQueue.add(3);priorityQueue.add(2);priorityQueue.offer(1);System.out.println(priorityQueue);
}

Deque<Integer> deque = new LinkedList<>();
deque.push(1);	// 压栈
Integer top = deque.peek(); // 获取栈顶
top = deque.pop();	//弹栈

Map

    static Map<Integer, Integer> map = new HashMap<>();map.put(1, 2);map.put(3, 4);map.put(5, 6);// {1=2, 3=4, 5=6}System.out.println(map);// 访问元素map.get(3);map.getOrDefault(-1, 1);	// 如果get的key -1不存在,则返回默认值1// 删除元素map.remove(5);System.out.println(map);// 判断是否包含keySystem.out.println(map.containsKey(3));// 判断是否包含valueSystem.out.println(map.containsValue(2));// 输出 keyfor (Integer i : map.keySet()) {System.out.println("key: " + i);}// 输出 valuefor(Integer value: map.values()) {// 输出每一个valueSystem.out.print(value + ", ");}// 输出 key 和valuefor(Map.Entry<Integer, Integer> entry: map.entrySet()) {// 输出每一个entrySystem.out.println("key: " + entry.getKey() + ", value: " + entry.getValue());}map.forEach((k, v) -> {System.out.println(k + " " + v);});

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com