【Java常用容器】Map+Set+栈+队列+List+StringBuilder+Arrays+BigInteger+进制转换+保留小数

目录

一、Map类

1、HashMap

2、TreeMap - 补充

3、遍历

二、Set类

1、HashSet

2、TreeSet - 补充

三、栈 Stack

1、定义

2、相关操作

四、队列 Queue

1、定义

2、相关操作

3、优先队列PriorityQueue - 补充

4、双端队列 - 补充

五、List

1、定义

2、list自定义排序 

3、浅拷贝和深拷贝

4、二维List

六、StringBuilder

1、定义

2、字符串链接append

3、替换setCharAt

4、插入insert——在指定位置之前插入字符串

5、删除delete

6、翻转reverse

七、数组Arrays

1、求最大最小值

2、求数组和

3、Arrays.fill()

4、Arrays.sort()

5、Arrays.equal()

6、Arrays.toString() 

7、Arrays.asList()

8、Arrays.copyOfRange()

八、进制转换

(1)十进制 → 二、八、十六

(2)二、八、十六 → 十进制

九、BigInteger 

(1)加减乘除方法

(2)BigInteger类型转换

(3)其他方法

十、保留小数

(1)String的format方法

(2)DecimalFormat的format方法


一、Map类

  • Map mp1=new HashMap<>();   实现快速查找
  • Map mp2=new TreeMap<>();   保证元素字母顺序排列的map
  • Map mp3=new LinkedHashMap<>();   保证插入顺序的map

1、HashMap

Map mp=new HashMap<>();
Map mp=new HashMap<>();

//将key-value添加到map中
mp.put(key值,val值); 

char ch;
mp.put(ch,mp.getOrDefault(ch,0)+1); //相当于mp[ch]++;
mp.put(ch,mp.getOrDefault(ch,0)-1); //相当于mp[ch]--;

mp.putAll(Map m); //将m中的所有key-value添加到map中

mp.remove(key); //删除key-val对

mp.clear(); //清空

mp.getOrDefault(key,0); //获取key值所对应的value值 如果不存在返回0

//查询是否存在key或value值
mp.containsKey(key);
mp.containsValue(Value);

mp.replace(key,value) //替换指定key对应的value值
mp.replace(key,oldValue,newValue) //当指定key的对应的value为指定值时 替换该值为新值

mp.size();

mp.isEmpty();

//map套set、list等
Map> mp=new HashMap<>();
Map> mp=new ArrayList<>();

mp.computeIfAbsent(id,key->new HashSet<>()).add(val);
//如果mp中存在id,则对id所对应的value值进行操作
//如果mp中不存在id,会创建一个满足Value类型的数据结构放到Value的位置中

mp.computeIfAbsent(name,k->new ArrayList<>()).add(val);

2、TreeMap - 补充

TreeMap中的元素默认按照keys的自然排序排列。

  • 对Integer来说,其自然排序就是数字的升序
  • 对String来说,其自然排序就是按照字母表排序
TreeMap mp = new TreeMap<>();

//按key值从大到小排列
TreeMap mp = new TreeMap<>(Comparator.reverseOrder()); 

mp.ceilingEntry(key) //返回大于等于key的最小元素,不存在则返回null
mp.floorEntry(key) //返回小于等于key的最大元素,不存在则返回null

3、遍历

(1)entry法

【Java常用容器】Map+Set+栈+队列+List+StringBuilder+Arrays+BigInteger+进制转换+保留小数_第1张图片

for(Map.Entry x: map.entrySet()) 
{
    String Key = x.getKey();
    String Value = x.getValue();
    System.out.println(Key + ":" + Value);
}

(2) 只输出key或value时

// 打印键集合
for (String key : map.keySet()) 
    System.out.println(key);

// 打印值集合
for (String value : map.values()) 
    System.out.println(value);

(3)将map转化为set输出 

Set st=mp.keySet();
System.out.print(st);

二、Set类

不能重复得相同类型元素构成的集合

  • Set s1=new HashSet<>();   实现快速查找
  • TreeSet s2=new TreeSet<>();   保证元素字母顺序排列的set
  • Set s3=new LinkedHashSet<>();   保证插入顺序的set

1、HashSet

Set st=new HashSet<>();

st.add(val); //添加
st.addAll(st1);

st.remove(val); //删除

st.clear(); //清空

st.size(); //大小

st.isEmpty(); //判空

st.contains(val); //查找指定元素是否存在
st.containsAll(st1);

st.retainAll(st2); //取交集

2、TreeSet - 补充

TreeSet st=new TreeSet<>();

TreeSet st = new TreeSet<>(Comparator.reverseOrder()); //倒序

st.first(); //返回第一个元素
st.last(); //返回最后一个元素

st.pollFirst(); //返回并删除第一个元素
st.pollLast(); //返回并删除最后一个元素

st.floor(x); //返回最后一个≤x的元素
st.ceiling(x); //返回第一个≥x的元素

st.lower(x); //返回最后一个x的元素

三、栈 Stack

1、定义

Deque stack=new LinkedList<>();

2、相关操作

stack.push(x); //入栈

stack.pop(); //出栈 删除并返回栈顶值
res=stack.pop();

stack.peek(); //返回栈顶值

stack.isEmpty(); //判空

stack.clear(); //清空

四、队列 Queue

1、定义

Queue q=new LinkedList <>();

Queue q=new LinkedList <>(); //{i,j}

2、相关操作

//入队 offer
q.offer(x);
q.offer(new int[] {i,j});

//出队 poll
q.poll();

//取队头元素
q.peek();

//队伍长度
q.size();

//判空
q.isEm

你可能感兴趣的:(java语法课,java,HashMap,Set,栈,队列,BigIntegr,算法)