《一》java基础语法--2.java编程规范和常用数据类型+3.java增强for循环和比较器Comparator

114 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

2 java编程规范和常用数据类型

2.1 java中main函数的定义方式为

public static void main(String [] args){}

2.2 常用数据类型及其使用

2.2.1基本数据类型

image-20220312151540002.png

注意 int 的数据范围是 2e9

对象类型:Byte,Short,Integer,Long,Float,Double,Character,Boolean

2.2.2 引用型数据类型

类(class) 数组 接口

为数组统一赋值的方法为 Arrays.fill(int [] arr, int x) 将arr内的每个元素赋值为x

2.2.3 数组的拷贝

1.clone()

2.2.4 String 字符串

创建 String s; 字符串类型的比较并非使用== 或!=,而是使用 str1.equals(String s2); 字符串类型的无法直接遍历,可通过转换为字符数组输出(str1.toCharArray)或者通过下标输出(charAt)

a3.java增强for循环和比较器Comparator

增强for循环

  • 对集合进行遍历。只能获取集合元素,但是不能对集合进行操作。
  • 迭代器除了遍历,还可以进行remove集合中元素的动作。
  • 局限性:必须有被遍历的目标。
  • 在遍历数组的时候,一般用传统for。因为传统for可以定义脚标。
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Iterator;
 public class Main{
     static BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
     static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
     public static void main(String[] args) throws Exception{
         String[] s = bf.readLine().split(" ");
         ArrayList<Integer> al = new ArrayList<>();
         for(String i : s) {
             al.add(Integer.parseInt(i));
         }
         Collections.sort(al,new Comparator<Integer>() {
 ​
             @Override
             public int compare(Integer o1, Integer o2) {
                 return o2 - o1;
             }
             
         });
         for(int i:al) {
             System.out.println(i);
         }
     }
 }

定义比较器的时候,也可以将比较器定义在外面

 public static class NodeComparator implements Comparator<Node>{
     @Override
     public int compare(Node o1,Node o2){
         return o1.value - o2.value;
     }
 }

在比较器里面的compare方法,我一般都这么记的,如果返回值为1的话就交换,否则不交换所以,当o1.value - o2.value 的时候,前面大的话,就进行交换,一轮这么交换下来,就是升序排序。否则,即为降序排序。