首页 > 其他分享 >笔试常用api

笔试常用api

时间:2024-09-14 16:53:44浏览次数:9  
标签:常用 String int 笔试 public api new o2 o1

常用api

ArrayList: List 接口

public boolean add(E e) :将指定的元素添加到此集合的尾部。
public boolean addAll(collection 对象) :将collection 的对象加入到
public E remove(int index) :移除此集合中指定位置上的元素。返回被删除的元素。
public E get(int index) :返回此集合中指定位置上的元素。返回获取的元素。
public E set(int index,E element) 修改索引中的值,并返回原来的值
public int size() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界。
public boolean remove(Object o)直接删除数据,删除成功返回true,删除失败返回false

【Java】常用API——ArrayList类 - 陶然同学 - 博客园 (cnblogs.com)

List<Object> list = new ArrayList<Object>() 
Collections.sort(list,(o1,o2)->{return o2-o1;}); 
Arrarys.sort()是用于给数组排序的,默认的情况下,是顺序排序,即从小到大
Integer[] arr = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
Arrays.sort(arr, (o1,o2)->{return o2-o1;});   

Collections.sor(list,(o1,o2)->{return o2-o1;}); 



  List<Person> list = new ArrayList<Person>() {{
            add(new Person(1, 30, "北京"));
            add(new Person(2, 20, "西安"));
            add(new Person(3, 40, "上海"));
        }};
        // 使用匿名比较器排序
        Collections.sort(list, new Comparator<Person>() {
            @Override
            public int compare(Person p1, Person p2) {
                return p2.getAge() - p1.getAge();
            }
        })

java-------Arrary.sort 用 Comparator比较器定制排序方式(例如逆序)_java sort排序comparator-CSDN博客

LinkedList

队列

数组

 LinkedList<String> lList = new LinkedList<String>();  
public Object removeFirst()//删除第一个元素  
public Object removeLast() //删除最后一个元素

双端队列

Deque<> queue = new LinkedList<>();
offerFirst() - 在双端队列的开头添加指定的元素。如果双端队列已满,则返回false。
offerLast() - 在双端队列的末尾添加指定的元素。如果双端队列已满,则返回false
peekFirst() - 返回双端队列的第一个元素。如果双端队列为空,则返回null。
peekLast() - 返回双端队列的最后一个元素。如果双端队列为空,则返回null。
pollFirst() - 返回并删除双端队列的第一个元素。如果双端队列为空,则返回null。
pollLast() - 返回并删除双端队列的最后一个元素。如果双端队列为空,则返回null。

队列

Queue<> queue = new LinkedList<>()
offer(e)
poll()
peek();

Deque<> stack = new LinkedList<>();
push();
pop();
peek();

PriorityQueue

API

PriorityQueue<对象> q = new PriorityQueue<String>();
offer(E e) // 将指定元素插入此优先队列
add
peek() // 获取第一个元素,及最小或最大元素
poll() // 获取并移除第一个
remove(Object o) // 移除指定元素
size() // 返回元素个数
contains(Object o) // 如果包含指定元素返回true

自定义排序

Comparator<Object>cmp=new Comparator<Object>() {
        public int compare(Object o1, Object o2) {
            //升序
            return o1-o2;
            //降序
            return o2-o1;
        }
    };


//自定义比较类,先比较长,长升序排列,若长相等再比较宽,宽降序
    static Comparator<Node> cmp=new Comparator<Node>() {
        public int compare(Node o1, Node o2) {
            if(o1.chang!=o2.chang)
                return o1.chang-o2.chang;
            else
                return o2.kuan-o1.kuan;
        }
        
    };


PriorityQueue<对象> q = new PriorityQueue<String>(cmp);

算法竞赛中的常用JAVA API:PriorityQueue(优先队列)(转载) - 记录学习Blog - 博客园 (cnblogs.com)

HashMap

HashMap<String,String> map = new HashMap<>();
map.getOrDefault("key", default)//如果map里有key就返回key对应的value,没有就返回default
在查找场景中,defualt设置为0,如果查询结果为空,则返回0;
map.containsKey("name");     //是否包含某个key
map.keySet();    //所有key----返回一个set集合
map.values();    //所有value
map.put("name","zhangsan");     //添加,若key存在,直接修改值
map.get("name");    //根据key--获取value


for(Map.Entry<Integer,String> entry : map.entrySet()){
    System.out.println(entry.getKey());
    System.out.println(entry.getValue());
}

刷题API

int [] ans;
ans.length;//长度

int [] result;
Arrays.sort(result); // 先进行排序

char[][]board;

board.length;//行
board[0].length // 列
    
    
String word;
word.charAt(index);//遍历第index位置的字符


String 转char[]
String word;

char[]words=word.toCharArray();

 
word.length();// 字符串的长度

String s;// 字符串 截取 startIndex,i+1 范围内
s.substring(startIndex, i + 1);

Map<Character, Character> pairs = new HashMap<Character, Character>() {{
            put(')', '(');
            put(']', '[');
            put('}', '{');
        }};

pairs.containsKey(ch)//判断是否包含ch 键值
map.put(num,map.getOrDefault(num,0)+1);// 

map.getOrDefault(num,0);// 如果不存在赋值为0
Deque<Character> stack= new LinkedList<>();
stack.push(value);//入栈
stack.pop()//出zhan
stack.peek()// 栈顶元素
stack.size()// 栈中元素的个数

    
 (1+2)/2.0=1.50000 转double 类型

字符串操作

StringBuilder()操作

public StringBuilder() 创建一个空白的可变的字符串对象,不包含任何内容
public StringBuilder(String str) 创建一个指定字符串内容的可变字符串对象
StringBuilder的常用方法

方法名称 说明
append(任意类型) 添加数据并返回StringBuilder对象本身
reverse() 将对象的内容反转
length() 返回对象内容长度
toString() 通过toString()就可以实现把StringBuilder转换为String
append方法的使用

String 常用api

String word;
word.charAt(index);//遍历第index位置的字符

String 转char[]
String word;
char[]words=word.toCharArray();
word.length();// 字符串的长度
String s;// 字符串 截取 startIndex,i+1 范围内
s.substring(startIndex, i + 1);

字符转int
String a="1";
System.out.println(Integer.parseInt(a));

int 转String 
int c=1;
String d=c+"";
 
//字符串分割
 String test="1,2,3,4,5";
 String[] split = test.split(",");

排序算法

Arrays.sort

1维排序

默认升序

 public static void main(String[] args) {
        Integer []a={2,3,4,5,1};
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));
    }

修改降序

public static void main(String[] args) {
        Integer[]a={2,3,4,5,1};
        Arrays.sort(a,(o1,o2)-> o2-o1);//降序
        System.out.println(Arrays.toString(a));
    }

注意事项

数组类型必须是Integer 类型,如果使用int类型 则降序报错

image-20240326151253040

2维数组排序


import java.util.Arrays;
import java.util.Comparator;

public class Main {
    public static void main(String[] args) {
        // 初始化二维数组
        int[][] array = {{5, 4}, {6, 4}, {6, 7}, {2, 3}};

        // 首先按照每个子数组的第一个元素进行升序排列,如果第一个元素相同,则按照第二个元素进行降序排列
        Arrays.sort(array, new Comparator<int[]>() {
            @Override
            public int compare(int[] o1, int[] o2) {
                if (o1[0] == o2[0]) {
                    return o2[1] - o1[1]; // 如果第一个元素相同,则按照第二个元素降序排列
                } else {
                    return o1[0] - o2[0]; // 否则按照第一个元素升序排列
                }
            }
        });

        // 打印排序后的二维数组
        for (int i = 0; i < array.length; i++)
            System.out.println(Arrays.toString(array[i]));
    }
}
import java.util.Arrays;
import java.util.Comparator;

public class Main {
    public static void main(String[] args) {
        int[][] array = {{5, 4}, {6, 4}, {6, 7}, {2, 3}};
        // 使用Lambda表达式简写Comparator接口的compare方法
        Arrays.sort(array, (o1, o2) -> {
            // 如果第一个元素相同,则按照第二个元素降序排列;否则按照第一个元素升序排列
            if (o1[0] == o2[0]) {
                return o2[1] - o1[1];
            } else {
                return o1[0] - o2[0];
            }
        });
        // 打印排序后的二维数组
        for (int i = 0; i < array.length; i++) {
            System.out.println(Arrays.toString(array[i]));
        }
    }
}

[2, 3]
[5, 4]
[6, 7]
[6, 4]

PriorityQueue排序

 Comparator<int> cmp = new Comparator<int>(){//自定义比较器
            @Override
            public int compare(int o1, int o2) {
               return o1-o2;//升序
            }
            
        };
PriorityQueue<Integer> pq=new PriorityQueue<>(cmp);

等价于下面

PriorityQueue<Integer> pq=new PriorityQueue<>(((o1, o2) -> o1-o2));

标签:常用,String,int,笔试,public,api,new,o2,o1
From: https://www.cnblogs.com/life1314/p/18414325

相关文章

  • 美团笔试2024秋1
    1、图染色法在编译原理中,寄存器分配是代码优化阶段的一项重要任务。寄存器分配的目标是为了有效地将程序中的活跃变量映射到有限数量的处理器寄存器上。在这个过程中,图染色法是一种常用的技术,它通过构建一个冲突图(其中节点代表活跃变量,边代表不能同时分配到同一寄存器的变量对......
  • 天梯赛(常用STL函数)+ 常见算法
    0.(森森美图)判断一个点x3,y3在一条直线(由x1,y1和x2,y2组成)的哪一边若(y2-y3)/(x2-x3)-(y1-y3)/(x1-x3)>0逆时针方向否则顺时针方向1.vectorvector<node>ve;//定义ve.insert(ve.begin()+i,k);//中间插入ve.insert(ve.begin()+i,num,key);ve.erase(ve.begin()+i);//删......
  • src/pyaudio/device_api.c:9:10: fatal error: portaudio.h: 没有那个文件或目录
    (venv)shgbitai@shgbitai-C9X299-PGF:~/pythonworkspace/ai-accompany$pipinstallpyaudiosounddeviceCollectingpyaudioDownloadingPyAudio-0.2.14.tar.gz(47kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━47.1/47.1k......
  • API架构图解:如何以图表形式展现复杂系统
    在展现复杂系统的API架构时,可以使用以下几种图表形式:一、流程图流程图可以清晰地展示API在复杂系统中的调用流程和数据流向。首先,确定系统中的主要组件和API接口。用不同形状的图形表示不同的组件,如矩形表示服务器、圆形表示客户端等。使用箭头表示API的调用方向......
  • PbootCMS常用公司信息标签调用
    以下是PbootCMS常用公司信息标签的表格形式,方便查阅和使用:标签名描述示例代码{pboot:companyname}公司名称{pboot:companyname}{pboot:companyaddress}公司地址{pboot:companyaddress}{pboot:companypostcode}邮政编码{pboot:companypostcode}{pboot:......
  • PbootCMS常用站点信息标签调用
    {pboot:siteindex}用于获取站点的入口地址,通常用于内部链接跳转时作为URL的前缀部分,帮助实现自适应的URL模式。{pboot:sitepath}返回站点的根路径,当网站部署在服务器的根目录下时该值为空;如果部署在二级目录,则返回相应的路径,确保链接的正确性。{pboot:sitelanguage}获取站......
  • 股票数据接口api,商品期货,交易所套利合约的程序化交易
    Python股票接口实现查询账户,提交订单,自动交易(1)Python股票程序交易接口查账,提交订单,自动交易(2)商品期货和交易所套利合约程序化交易的股票数据接口获取对于商品期货和交易所套利合约的程序化交易,获取股票数据接口API是关键的一步。以下是一些获取股票数据接口API的方法,以......
  • PbootCMS时间标签date常用格式调用方法大全
    在使用PBootCMS建站时,时间标签是非常常用的功能之一。下面整理了详细的调用方法,帮助大家更好地理解和使用这些标签。首页/列表页时间标签默认格式:标签:[list:date]效果:2021-12-0609:12:30年月日格式(Y-m-d):标签:[list:datestyle=Y-m-d]效果:2021-12-06年格式(Y):标......
  • SpringBoot集成高德天气API获取天气数据
    一、前言现在我们的日常开发中获取天气信息已经成为一项很重要的功能,也是一些门户网站必不可少的展示。所以我们需要学习如何获取实时天气数据,我们利用SpringBoot集成高德天气API可以很方便的实现获取天气实时数据。二、前期准备1.账号申请天气文档:https://lbs.amap.com/api/webser......
  • PbootCMS后台常用文件修改路径
    在PBootCMS中,后台界面的许多元素都是通过模板文件来定义的,因此如果你需要对后台界面进行定制化修改,比如修改文字内容、调整布局等,就需要编辑这些模板文件。以下是几个常用的文件及其用途:常用文件及用途登录页页面修改路径:apps\admin\view\default\index.html用途:这个文件负......