Java语法小结

Map

建立map
Map<Character, Integer> left_map = new HashMap<>();

判断两个map是否相等
left_map.equals(right_map)

map放入值
left_map.put(key,value);

map取值
char c = 'a'; left_map.get( c );

map删除a的键值对
left_map.remove( c);

map清空
left_map.clear();

是否包含
map.containsKey( c);

遍历map

方法一

for (Map.Entry<Character, Integer> t : map.entrySet()) {
    
    
               char c = t.getKey();
}

方法二

Set<Character> keySet = map.keySet();
 for (Character char : keySet) {
    
    ...}
for (String key : map.keySet()) {
    
    
            Integer value = map.get(key);
            System.out.println(key + " = " + value);
        }
    }

getOrDefault
Map.put(ch,(Map.getOrDefault(ch,0)+1));

Map.getOrDefault(Object key, defaultValue):
当Map集合中有这个key时,就使用这个key值;
如果没有就使用默认值defaultValue(key 和value的类型都不限)。

map排序

  Map<String, String> map1 = new HashMap<String, String>();
        map1.put("a", "3");
        map1.put("c", "2");
        map1.put("b", "1");

  // 根据key排序
        List<Map.Entry<String, String>> entryList1 = new ArrayList<Map.Entry<String, String>>(map1.entrySet());
        Collections.sort(entryList1, new Comparator<Map.Entry<String, String>>() {
    
    
            @Override
            public int compare(Entry<String, String> me1, Entry<String, String> me2) {
    
    
                return me1.getKey().compareTo(me2.getKey()); // 升序排序
                //return me2.getKey().compareTo(me1.getKey()); // 降序排序
            }
        });
        
		
   // 根据value排序
      List<Map.Entry<String, String>> entryList2 = new ArrayList<Map.Entry<String, String>>(map1.entrySet());
      Collections.sort(entryList2, new Comparator<Map.Entry<String, String>>() {
    
    
            @Override
            public int compare(Entry<String, String> me1, Entry<String, String> me2) {
    
    
                return me1.getValue().compareTo(me2.getValue()); // 升序排序
                //return me2.getValue().compareTo(me1.getValue()); // 降序排序
            }


String 、int、char

String 转int
int number;
String number_s;
number = Integer.parseInt(number_s);

int转string

String s = String.valueOf(i);
String s = Integer.toString(i);
String s = "" + i;

char 转int
(1)
int num = Character.getNumericValue(ch);//char转为int类型
(2)

 char c;
// 先把c装成string类型
String stringc = String.valueOf(c);
// 再把string转成int
 int intc = Integer.parseInt(stringc);

int 转char

int num = 'a' + 1; char ch = (char) num;//ch = b 这只是ASCII码的转化

int转String再转char

String转char[]
char[] ch = s.toCharArray();

char拼接成String
char ch;
number_s += String.valueOf(ch);

char[]转化为string
char[] cc;
String.valueOf(cc)

去除String类型str的最后一个字符
str= str.substring(0, str.length() - 1)

返回该位置对应的字符
str.charAt(i)

String大小写转换

.toLowerCase();//转成小写
.toUpperCase();//转成大写

String Upstr = str.toUpperCase();//"ABC"
String Lowstr = str.toLowerCase();//"abc"

char 大小写
Character.isLetterOrDigit(ch) 确定指定字符ch是一个字母或数字,是的话则返回true。
Character.toLowerCase(ch) 将字符串转换为小写

set

Set用于存储不重复的元素集合。

定义
Set<String> set = new HashSet<>();
添加元素
set.add(" ");
是否包含元素
set.contains(" ");
删除元素
set.remove(" ");
集合的大小
set.size();
遍历集合:

 Set < Integer > set = new  HashSet < Integer >() ;
        for ( int x : nums ){
    
    
            if (!set.add (x)){
    
    
                 return true ;
             }

List

ArrayListLinkedListVector都实现了List接口,是List的三种实现。

创建ArrayList集合:
List<String> list = new ArrayList<String>();
List list = new ArrayList();
添加功能:add()
list.add("Hello");
修改功能:set()
list.set(0,"my");
获取功能:get()
String element = list.get(0);
是否空:isEmpty()
boolean isEmpty = list.isEmpty();
是否包含:contains()
boolean isContain = list.contains("my");
获取长度:size()
int size = list.size();
删除功能:
list.remove(0);
list.remove("world");
list.clear();
把集合转换成数组 :
String[] strArray = list.toArray(new String[]{});
遍历:
方法一:迭代器

 Iterator<String> iterator =  list.iterator();
        while(iterator.hasNext()){
    
    
            String next = iterator.next();
            System.out.println(next);
        }

方法二:for循环

 for(String str:list){
    
    
            System.out.println(str);
        }

Stack

Stack<Integer> preNum = new Stack<>();

preNum.add(getPreNum(temp));

preNum.peek()

数组

Arrays.sort(int[] a) 直接对数组进行从小到大的排序

BufferedReader

BufferedReader in = new BufferedReader(new FileReader(“foo.in”));

  • read() 方法:读取1个或多个字节,返回一个字符,当读取到文件末尾时,返回-1
  • fill() 方法:从底层输入流中填充字符到缓冲区中,此方法会调用StreamDecoder的方法实现字节到字符的转换
  • readLine(): 读一行文字并返回该行字符,若读到文件末尾,则返回null:即当遇到换行符(’\ n’),回车符(’\ r’)时会终止读取表示该行文字读取完毕且返回该行文字(不包含换行符和回车符)
  • close() 方法:关闭资源释放链接

StringBuffer 方法

StringBuffer
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

append(String s)
StringBuffer(str).reverse() 元素逆序
delete(int start, int end)
insert(int offset, int i)
replace(int start, int end, String str)

PriorityQueue

比较器

对多个对象进行排序
Comparable和Comparator

set

   Set<Integer> set = new TreeSet<>();

class

map+class
set+class

//定义
class Point{
    
    
	 int x;
	 int y;
		
	 public  Point(int i,int j){
    
    
		 this.x = i;
		 this.y = j;
	 }
	 
	}//Point
	
//使用
Point point = new Point(0,0);

常用Ascii码

a-z :  97 - 122
A-Z :  65 - 90
0-9 :  48 - 57

小方法

递归法求最大公约数
( return b > 0?gcd(b,a%b):a;)

异或

任何数和 0 做异或运算,结果仍然是原来的数,即a⊕0=a。
任何数和其自身做异或运算,结果是 0,即 a⊕a=0
 int single = 0;
        for (int num : nums) {
    
    
            single ^= num;
        }

map的啥
return new int[]{hashtable.get(k, v};

str.indexOf(’+’,l)

String.valueOf(amount).contains(“7”))

zong = zong * 10 + (ch-‘0’)

HashMap和HashSet的区别
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_51985653/article/details/120691580