集合框架

概念图

这里写图片描述

每种集合的特点

这里写图片描述

Collections和Comparator接口排序

package day13;

import java.util.Comparator;

public class MyComparator implements Comparator<Student>{

    @Override
    public int compare(Student arg0, Student arg1) {
        return arg1.getAge()-arg0.getAge();
    }

}
public class Test01 {
    public static void main(String[] args) {
        ArrayList<Student> clazz = new ArrayList<Student>();
        Student zhangsan = new Student("张三", 15);
        Student lisi = new Student("李四", 12);
        Student wangwu = new Student("王五", 19);
        Student zhaoliu = new Student("赵六", 10);
        clazz.add(zhangsan);
        clazz.add(lisi);
        clazz.add(wangwu);
        clazz.add(zhaoliu);
        System.out.println("********************************");
        Collections.sort(clazz, new MyComparator());
        for (int i = 0; i < clazz.size(); i++) {
            System.out.println(clazz.get(i).getName() + "\t"
                    + clazz.get(i).getAge());
        }
    System.out.println("********************************");
    }
  • 结果
  • 这里写图片描述

将map转为set输出key和value

package comparatortest;

import java.util.*;


public class MapToSet {
    public static void main(String[] args) {
        Map<String, String> m=new TreeMap<>();
        m.put("CC", "张三");
        m.put("DD", "李四");
        m.put("AA", "王五");
        m.put("BB", "赵六");

        Set all=m.entrySet();
        Iterator i=all.iterator();
        while (i.hasNext()) {
            Map.Entry me=(Map.Entry)i.next();
            System.out.println(me.getKey()+"\t"+me.getValue());
        }
    }
}
  • 结果
  • 这里写图片描述

Set

  • Hashset无序唯一 treeset
  • Set中的元素是唯一的,即元素不重复,如果set中不存在i,则添加i到set,如果存在则不改变set
  • 泛型不能使用简单数据类型,只能使用
  • 遍历set应用iterator

Map

Hashmap与hashtable区别

Hashtable键值对不可以为null,速度比hashmap慢
Hashmap键值对允许使用null

Collentions

  • Sort方法
  • Reverse反转(只针对于list,因为list有序)
  • Max返回最大值
  • Min返回最小值

快速排序

  • 这里写图片描述

泛型

  • 自定义泛型:可以自己设置自己定义的类可以接收的数据类型的,比如定义一个Person类,只让他接收Dog类的宠物,或者是只让他接收Cat类的宠物
  • Public void Person{} T你传什么类型,Person的引用就只能接收哪种类型的引用
  • Public void Person{} 限制传进来的泛型必须是Pet的子类

枚举

正则表达式

概念
  • 对字符串按照一定的规则进行匹配

使用形式

  • ^表示开始 $表示结束
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
  • 注意:在仅使用一次正则表达式时,可以方便地通过此类定义 matches 方法。此方法编译表达式并在单个调用中将输入序列与其匹配。语句 :
    boolean b = Pattern.matches(“a*b”, “aaaaab”);
    等效于上面的三个语句,尽管对于重复的匹配而言它效率不高,因为它不允许重用已编译的模式。
正则表达式的使用
package patterntest;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 密码8~16位,必须字母、数字、下划线组合 必须有数字、大写字母、小写字母
 */
public class PatternTest {
    public static void main(String[] args) {
        String str="35486sdaASD_";
         //密码8~16位,必须字母、数字、下划线组合 必须有数字、大写字母、小写字母
         //(?![0-9a-z_]{8,16}$)   ?!表示不包括其中所包含的数据模式
         Pattern pattern=Pattern.compile("^(?![0-9a-z_]{8,16}$)(?![a-zA-Z_]{8,16}$)(?![0-9A-Z_]{8,16}$)\\w{8,16}$");
         Matcher matcher=pattern.matcher(str);
         boolean bb=matcher.matches();
         System.out.println(bb);     
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值