ASList

Comparable 和 Comparator的理解

生来就可爱ヽ(ⅴ<●) 提交于 2020-05-04 03:45:14
对Comparable 的解释 Comparable是一个排序接口 此接口给实现类提供了一个排序的方法,此接口有且只有一个方法 public int compareTo(T o); compareTo方法接受任意类型的参数,来进行比较 list或者数组实现了这个接口能够自动的进行排序,相关类的方法有Collections.sort(),Arrays.sort(); SortedMap 接口的key内置了compareTo方法来进行键排序,SortedSet 也是内置了compareTo方法作为其内部元素的比较手段 compareTo()方法与equals()方法的比较 compareTo()方法不同于equals()方法,它的返回值是一个int类型 int a = 10,b = 20,c = 30,d = 30; a.compareTo(b) // 返回 -1 说明 a 要比 b 小 c.compareTo(b) // 返回 1 说明 c 要比 b 大 d.compareTo(c) // 返回 0 说明 d 和c 相等 而equals 方法返回的是boolean 类型 x.equals(y) // true 说明x 与 y 的值 相等 , false 说明x 与 y 的值 不相等 代码 Comparable 更像是一个内部排序接口,一个类实现了Comparable比较器

松果生活alpha冲刺项目规划

喜你入骨 提交于 2020-05-02 10:40:05
松果生活alpha冲刺项目规划 一、alpha冲刺任务 (一)后端数据库部分 完成数据库的搭建和数据表的构建 编写相关的增删改查代码 与后台界面进行数据交互 部署到服务器上进行数据交互测验 (二)后端后台部分 完成大致页面的搭建 与数据库进行数据交互测验 (三)安卓端部分 完成登录界面的构建 完成主页以及主要视图fragment的搭建 做好数据的持久化存储 与后台界面进行数据交互测验 (四)iOS端部分 完成登录界面的构建 完成主页以及部分视图的搭建 与后台界面进行数据交互测验 (五)产品文档部分 优化软件设计说明书 完成会议记录 完成alpha冲刺的冲刺随笔 完成相关的代码规范 二、冲刺计划 工作内容 完成时间 负责人员 编写alpha冲刺项目规划文档以及代码规范 冲刺1前 彭陈浩 第零次会议 冲刺1前 全体成员 后台的数据库、表构建以及初步部署 冲刺1 吴章权、胡世鑫、包鹏飞、龚俊鹏、胡锦浩 登录界面搭建并测试相关api 冲刺1 彭陈浩、李昊朋 后台用户、文章等页面的搭建 冲刺1 赖晓辉、朱鸿昊 数据库的增删改查以及与后台的数据交互 冲刺2-6 吴章权、胡世鑫、包鹏飞、龚俊鹏、胡锦浩、赖晓辉、朱鸿昊 移动端基础界面的完善,发布功能的构建 冲刺2-6 彭陈浩、李昊朋 移动端与后台的数据交互测试 冲刺7 彭陈浩、李昊朋、朱鸿昊、赖晓辉 数据库的相关测试以及排查bug 冲刺7 吴章权

Copy ArrayList的四种方式

送分小仙女□ 提交于 2020-05-01 09:17:12
Copy ArrayList的四种方式 简介 ArrayList是我们经常会用到的集合类,有时候我们需要拷贝一个ArrayList,今天向大家介绍拷贝ArrayList常用的四种方式。 使用构造函数 ArrayList有个构造函数,可以传入一个集合: public ArrayList(Collection<? extends E> c) { elementData = c.toArray(); if ((size = elementData.length) != 0) { // c.toArray might (incorrectly) not return Object[] (see 6260652) if (elementData.getClass() != Object[].class) elementData = Arrays.copyOf(elementData, size, Object[].class); } else { // replace with empty array. this.elementData = EMPTY_ELEMENTDATA; } } 上面的代码我们可以看出,底层实际上调用了Arrays.copyOf方法来对数组进行拷贝。这个拷贝调用了系统的native arraycopy方法,注意这里的拷贝是引用拷贝,而不是值的拷贝

list<Integer>,Integer[],int[]之间的互转(jdk1.8)

一笑奈何 提交于 2020-05-01 02:57:17
偶然在开发过程中需要将int[] 转成 List<Integer>,采用了遍历的方式,写的代码实在太多。 1 List<Integer> list = new ArrayList<> (); 2 for ( int i : ints1){ 3 list.add(i); 4 } 采用jdk1.8的新特性一行代码就可搞定,代码简洁 1     int [] ints = {1, 4, 5, 6 }; 2       List<Integer> collect = Arrays.stream(ints).boxed().collect(Collectors.toList()); 整理了jdk1.8下 list<Integer>,Integer[],int[]三者之间的互转 1 List<Integer> list = new ArrayList<> (); 2 list.add(111 ); 3 // List<Integer> -> int[] 4 int [] ints = list.stream().mapToInt(Integer::valueOf).toArray(); 5 System.out.println(ints.length); 6 7 // List<Integer> -> Integer[] 8 Integer[] integers1 = list.toArray

Java码农必须掌握的循环删除List元素的正确方法!

半腔热情 提交于 2020-04-29 14:32:00
首先看下下面的各种删除list元素的例子 public static void main(String\[\] args) { List<String> list = new ArrayList<>(Arrays.asList("a1", "ab2", "a3", "ab4", "a5", "ab6", "a7", "ab8", "a9")); /** * 报错 * java.util.ConcurrentModificationException */ for (String str : list) { if (str.contains("b")) { list.remove(str); } } /** * 报错:下标越界 * java.lang.IndexOutOfBoundsException */ int size = list.size(); for (int i = 0; i < size; i++) { String str = list.get(i); if (str.contains("b")) { list.remove(i); } } /** * 正常删除,每次调用size方法,损耗性能,不推荐 */ for (int i = 0; i < list.size(); i++) { String str = list.get(i); if (str

项目后续-日常应用代码记录

元气小坏坏 提交于 2020-04-29 10:15:41
一、代码实现 1.数组转换成List String[] deviceIdAy = buildingDto.getChannelId().split(Symbol.COMMA); //设备id List<String> deviceIdList = Arrays.asList(deviceIdAy); 2.List转换成数组 List<String> gatemateIdList = buildingDao.listBuildingDeviceId(buildingDeviceCond); String[] deviceIdAy = gatemateIdList.toArray(new String[gatemateIdList.size()]); 3.List数组拼接到另外一个List后面(channelDtoListTo放到channelDtoList后面) List<ChannelDTO> channelDtoListTo = buildingDao.listChannel(channelCondTo); channelDtoListTo.stream().sequential().collect(Collectors.toCollection(() -> channelDtoList)); 3.List的stream的用法 1.map

Java Builder模式 Lambda表达式

五迷三道 提交于 2020-04-28 09:03:40
Java Builder模式 package com.cathay; /** * @Description * @TODO * @Author liangjie@cathay-ins.com.cn * @Date 创建时间:2018/11/16 **/ public class Person { private String name; private int age; private boolean sex; public String getName() { return name; } public int getAge() { return age; } public boolean isSex() { return sex; } public static class Builder { private String name; private int age; private boolean sex; public Builder name(String n) { name = n; return this; } public Builder age(int a) { age = a; return this; } public Builder sex(boolean s) { sex = s; return this; } public Person build()

Java8 lambda表达式10个示例<转>

独自空忆成欢 提交于 2020-04-28 09:03:05
例1、用lambda表达式实现Runnable 我开始使用Java 8时,首先做的就是使用lambda表达式替换匿名类,而实现Runnable接口是匿名类的最好示例。看一下Java 8之前的runnable实现方法,需要4行代码,而使用lambda表达式只需要一行代码。我们在这里做了什么呢?那就是用() -> {}代码块替代了整个 匿名类 。 // Java 8之前: new Thread(new Runnable() { @Override public void run() { System.out.println("Before Java8, too much code for too little to do"); } }).start(); //Java 8方式: new Thread( () -> System.out.println("In Java8, Lambda expression rocks !!") ).start(); 输出: too much code, for too little to do Lambda expression rocks !! 这个例子向我们展示了Java 8 lambda表达式的语法。你可以使用lambda写出如下代码: (params) -> expression (params) -> statement (params)

List中remove元素的理解

那年仲夏 提交于 2020-04-25 16:27:14
今天写了个简单的list中remove元素的方法,结果报错。。。 List<String> ll = Arrays.asList("1","2","3","4","5" ); for ( int i=0; i < ll.size(); i++ ){ ll.remove(i); } 报错,java.lang. UnsupportedOperationException ,这个是因为Arrays.asList()返回AbstractList,没有实现增删改操作,用如下构造方式解决。 List<String> list = new ArrayList<>(Arrays.asList("1","2","3","4","5" )); for ( int i = 0; i < list.size(); i++ ){ list.remove(i); } System.out.println(list); 注意这种方式并不是把所有元素删除(list.size()) list = new ArrayList<>(Arrays.asList("1","2","3","4","5" )); for (String s : list){ list.remove(s); } System.out.println(list); 报错,java.util.

activiti 工作流 动态 设置 指定 节点任务人、责任人、组 的实现方式

浪尽此生 提交于 2020-04-24 14:53:00
首先给大家看一下我的流程图: 流程文件leaveBill.bpmn <?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test"> <process id=