集合框架
来源:互联网 发布:王者荣耀手办淘宝 编辑:程序博客网 时间:2024/06/03 22:04
概念图
每种集合的特点
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); }}
0 0
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- win7 64位下eclipse使用的奇葩问题
- 七周七种前端框架三: Angular2 之 TypeScript
- VMware Workstation中Ubuntu 的 VMware Tools安装完hgfs无文件夹的解决
- windows server 2012配置MySQL 和 tomcat
- CCBPM对业务型SaaS客服领域的支持
- 集合框架
- 矩阵运算的GPU加速!!求教各位大神帮忙!在此谢过
- 【整理】FFMPEG相关开源项目
- [leetcode]Factorial Trailing Zeroes
- 设置Bitmap平铺效果
- 【Leet Code】64. Minimum Path Sum---Medium
- coco2d-js 无法加载网络图片(Failed to execute 'texImage2D' on ‘WebGLRenderin
- linux socket 缓冲区默认大小
- Caused by: java.lang.UnsatisfiedLinkError: Couldn't load p7zip from loader dalvik.system.PathClassL