Java集合框架API使用汇总

一维List创建与初始化

List<Integer>temp = new ArrayList<Integer>();
//或 List<Integer>temp = new ArrayList<>();

//用已经存在的list初始化 
List<Integer>copy = new ArrayList<Integer>(temp);

//增加与删除
temp.add(1);
temp.remove(temp.size()-1);

嵌套List

//外层实例,内层抽象

List<List<Integer>> ans = new ArrayList<List<Integer>>();
ans.add(temp);//二维list中加入一个一维list temp

Arrays.sort

edge是一个二维数组,以下写法是按照edge的第二个维度从大到小排序

Arrays.sort(edges, (a, b) -> (b[0] - a[0]));

栈和队列

//声明
Stack<Character> stack = new Stack<>();
//插入
stack.push(ch);
//删除
stack.pop();
//栈顶
//当栈为空时,调用此方法会报错
stack.peek()
                

队列

//声明
Queue<Character> queue = new LinkedList<Character>();
//插入
queue.offer(ch);
//删除
queue.poll();
//队列首部
queue.peek()
                
队列
push()offer()
pop()poll()
peek()peek()

deque 双端队列

Deque<String> path = new ArrayDeque<>();
path.addFirst(suffix);
path.addFirst(suffix);

//弹出队列首部元素
path.pollFirst();

//往队列尾部添加元素
path.add(element);

Compareable和Comparator

Compareable是一个接口,内部只有一个方法叫compareTo()

public interface Comparable<T> {
    public int compareTo(T o);
}

常用排序模板

结构体排序

import java.util.*;
class node{
    int score;
    int age;
    public node(int s,int a){
        score=s;
        age=a;
    }
}
public class nodeOrder {
    public void bestTeamScore(int[] scores, int[] ages) {
        int n = scores.length;
        node[] arr = new node[n];
        for (int i = 0; i < n; i++) {
            arr[i] = new node(scores[i], ages[i]);
        }
        //核心排序代码
        Arrays.sort(arr, (e1, e2) -> {
            //首先按照年龄从小到大排序
            if (e1.age != e2.age) {
                return e1.age - e2.age;
            }
            //若年龄相同,按照分数从小到大排序
            else {
                return e1.score - e2.score;
            }
        });
    }
}

字符串字典序排序

import java.util.*;
public class StringDicOrder {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        sc.nextLine();
        String[] strArr = new String[n];
        for(int i=0;i<n;i++){
            strArr[i]=sc.nextLine();
        }
        //核心代码
        Arrays.sort(strArr,(s1,s2)->s1.compareTo(s2));
        for(int i=0;i<n;i++){
            System.out.println(strArr[i]);
        }
    }
}

hashmap的遍历

第一种方法既取出了key,也取出了value

 Iterator<Map.Entry<String, Integer>> entryIterator = map.entrySet().iterator();
         while (entryIterator.hasNext()) {
             Map.Entry<String, Integer> next = entryIterator.next();
             System.out.println("key=" + next.getKey() + " value=" + next.getValue());
         }

Iterator<String> iterator = map.keySet().iterator();
        while (iterator.hasNext()){
            String key = iterator.next();
                        System.out.println("key=" + key + " value=" + map.get(key));
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值