Java 备忘知识

待补充 ........

0:常用头文件(待补充)

import java.util.Arrays;
import java.util.HashSet;
import java.util.TreeSet;
import java.util.Map;
import java.util.HashMap;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.IOException;
import java.util.StringTokenizer;

import java.math.BigInteger;               //大整数
import java.math.BigDecimal;            //大浮点数

1:读入(from Petr)

class InputReader {
    public BufferedReader reader;
    public StringTokenizer tokenizer;
    public InputReader(InputStream stream) {
        reader = new BufferedReader(new InputStreamReader(stream), 32768);
        tokenizer = null;
    }
    public String next() {
        while (tokenizer == null || !tokenizer.hasMoreTokens()) {
            try {
                tokenizer = new StringTokenizer(reader.readLine());
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
        return tokenizer.nextToken();
    }
    public int nextInt() {
        return Integer.parseInt(next());
    }
}

2:高精度的使用

3:Set 类的使用

  介绍:Java中的Set有三种常用的实现方式:

  (1)HashSet : HashSet将数据存储哈希表中,性能最佳。(无序)

  (2)TreeSet:   TreeSet将数据存储在红黑树中,数据的顺序依据数据的值。(有序)

  (3)LinkedHashSet:   LinkedHashSet中的数据存储在哈希表中,同时被链表贯穿着。它的顺序是按照插入的顺序。(有序)

  使用:

  (1)初始化、插入、删除、遍历

Set<Type> set = new HashSet<Type>();    //HashSet 初始化
Set<Type> set = new TreeSet<Type>();    //TreeSet 初始化

set.add(Type);       //元素插入

set.remove(Type);    //元素删除

set.contains(Type);  //如果包含某个元素,则返回 true

set.size();          //返回集合中的元素个数

set.clear();         //清空集合

set.isEmpty();       //如果集合为空,则返回 true

//遍历方法一:迭代器遍历
for(Iterator<Type> iterator = set.iterator();iterator.hasNext();){
     System.out.print(iterator.next() + " " );
}

//遍历方法二:循环遍历
for(Type value : set){
     System.out.print(value+" ");
}

  (2)TreeSet 自定义比较方法

Set<Type> set = new TreeSet<Type>(new MyComparator());  //新的初始化方法

class MyComparator implements Comparator<Type>{    //自定义类
    public int compare(Type a, Type b) {
        return ;  //自定义比较方法
    }
}  

4:Map 类的使用(推荐博客推荐博客2

  介绍:HashMap通过hashcode对其内容进行快速查找,而 TreeMap中所有的元素都保持着某种固定的顺序。

    如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)。

  (1)初始化、插入、删除、遍历

Map<Type1, Type2> map = new HashMap<Type1, Type2>();  //初始化

map.put(Type1 , Type2);     //插入

map.remove(Type1);          //删除

map.clear();                //清空

map.get(Type1);             //返回与Type1相关的Type2

map.containsKey(Type1);     //如果包含指定键的映射,则返回 true

map.containsValue(Type2);   //如果将一个或多个键映射到指定值,则返 true,效率低

map.isEmpty();              //如果 Map 为空,则范围 true

map.size();                  //返回 Map 的映射数目

map.putAll(Map t);          //将 t 中的所有映射复制过来

//遍历主方法一:在for-each循环中使用entries来遍历

for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}

//遍历主方法二:在for-each循环中遍历keys或values(效率稍高)

for (Integer key : map.keySet()) {  //仅需要键
    System.out.println("Key = " + key);
}

//遍历map中的值

for (Integer value : map.values()) {  //仅需要值
    System.out.println("Value = " + value);
}
时间: 2024-10-11 12:17:52

Java 备忘知识的相关文章

JVM内存知识备忘

又是一篇备忘... 主要记录一些知识,进行一些资源的汇总. 先来群里liufor大大提供的两张图,清晰易懂: Dockerized Java https://www.youtube.com/watch?v=NQ5hTEp-GTM Java on Linux for devs and ops https://www.slideshare.net/aragozin/java-on-linux-for-devs-and-ops 常用配置&命令 常用命令 JVM启动用的命令行 jcmd process_

java正则表达式备忘

最近框架和爬虫上常要处理字符串匹配和替换的场景,备忘. 非贪婪模式 比如要匹配html文本中的连接,例如a href="www.abc.com/xyz/o"需要替换为a href="www.bing.com?q=o",可以如下: static final String OSCHINA_LINK = "\"(https://www\\.abc\\.net/p/)(.+)\""; static Pattern pattern =

GIS部分理论知识备忘随笔

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.高斯克吕格投影带换算 某坐标的经度为112度,其投影的6度带和3度带的算法为: 6度带:N=L/6,有余数则+1,所以带号是19,中央子午线经度 L'=6N-3 即19*6-3=111°. 3度带:N=(L-1.5)/3,有余数则+1,带号37,经度111°. 2.七参数转换 对于7参数转换,设置为:DX#DY#DZ#QX#QY#QZ#M DX:X偏移,单位米: D

java开发微信公众平台备忘

简单记录下前段时间开发的电子书的 公众平台的一些备忘及开发心得经验等 eclipse的一些技巧: 1.ctrl+shift+o 自动添加必要import空间及移除无用import 项目备忘+说明 1.struts配置 :resources->struts.xml 经验心得: 1.struts在前台显示后台属性:${属性名称},

知识备忘

1.List  GroupBy 用法 var _roomProducts = homesingProducts.GroupBy(t => t.RoomName); RoomedProducts temp = new RoomedProducts(); foreach (var item in _roomProducts) { roomNames.Add(item.Key); temp = new RoomedProducts(); temp.RoomName = item.Key; temp.P

RxJava & RxAndroid备忘

"你问我要去向何方,我指着大海的方向" 今天在刷G+的时候看到Dave Smith推荐了一个视频 <Learning RxJava (for Android) by example> 点进去看了一下,原来是位熟悉的"阿三哥",视频封面如下:(没有歧视的意思,不要喷我啊~,为什么感到熟悉?接着往下看) 几乎同时也看到了JetBrains在G+也推荐了篇在Medium上的博文 <RxAndroid And Kotlin (Part 1)> ,然后

关于java的JIT知识

1.JIT的工作原理图 工作原理 当JIT编译启用时(默认是启用的),JVM读入.class文件解释后,将其发给JIT编译器.JIT编译器将字节码编译成本机机器代码. 通常javac将程序源码编译,转换成java字节码,JVM通过解释字节码将其翻译成相应的机器指令,逐条读入,逐条解释翻译.非常显然,经过解释运行,其运行速度必定会比可运行的二进制字节码程序慢.为了提高运行速度,引入了JIT技术. 在执行时JIT会把翻译过的机器码保存起来,已备下次使用,因此从理论上来说,採用该JIT技术能够,能够接

正则表达式入门及备忘

概述 正则表达式,主要是用符号描述了一类特定的文本(模式).而正则表达式引擎则负责在给定的字符串中,查找到这一特定的文本. 本文主要是列出常用的正则表达式符号,加以归类说明.本文仅仅是快速理解了正则表达式相关元字符,作一个备忘,供以后理解更复杂表达式的参考,以后关于正则表达式的相关内容会持续更新本文.示例语言用C# 概述 普通字符 字符集合 速记的字符集合 指定重复次数的字符 匹配位置字符 分支替换字符 匹配特殊字符 组,反向引用,非捕获组 贪婪与非贪婪 回溯与非回溯 正向预搜索.反向预搜索 最

《Windows核心编程》第5版 学习进度备忘

学习资源:<Windows核心编程>第5版 知识基础支持: 跳过的内容: 1. 知识要点: 1: 注意事项: 1. 不理解知识点: 1. 进度: 1.2014-08-10,前两章结束,接下来“第3章内核对象” <Windows核心编程>第5版 学习进度备忘,布布扣,bubuko.com