java----js不常用的api
Set系列集合: 添加的元素,是无序,不重复,无索引的。
-- HashSet:添加的元素,是无序,不重复,无索引的。
-- LinkedHashSet:添加的元素,是有序,不重复,无索引的。
List系列集合:添加的元素,是有序,可重复,有索引的。
-- LinkedList: 添加的元素,是有序,可重复,有索引的。
-- ArrayList: 添加的元素,是有序,可重复,有索引的。
-- Vector 是线程安全的,速度慢,工作中很少使用。
1、List集合继承了Collection集合的全部功能,"同时因为List系列集合有索引",
2、因为List集合多了索引,所以多了很多按照索引操作元素的功能:
3、ArrayList实现类集合底层基于数组存储数据的,查询快,增删慢!
- public void add(int index, E element): 将指定的元素,添加到该集合中的指定位置上。
- public E get(int index):返回集合中指定位置的元素。
- public E remove(int index): 移除列表中指定位置的元素, 返回的是被移除的元素。
- public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回更新前的元素值。
LinkedList是支持双链表,定位前后的元素是非常快的,增删首尾的元素也是最快的
所以LinkedList除了拥有List集合的全部功能还多了很多操作首尾元素的特殊功能:
- public void addFirst(E e):将指定元素插入此列表的开头。
- public void addLast(E e):将指定元素添加到此列表的结尾。
- public E getFirst():返回此列表的第一个元素。
- public E getLast():返回此列表的最后一个元素。
- public E removeFirst():移除并返回此列表的第一个元素。
- public E removeLast():移除并返回此列表的最后一个元素。
- public E pop():从此列表所表示的堆栈处弹出一个元素。
- public void push(E e):将元素推入此列表所表示的堆栈。
小结:
LinkedList是支持双链表,定位前后的元素是非常快的,增删首尾的元素也是最快的。
所以提供了很多操作首尾元素的特殊API可的实以做栈和队列现。
如果查询多而增删少用ArrayList集合。(用的最多的)
如果查询少而增删首尾较多用LinkedList集合。
js数组对象排序
this.inArry.sort((a,b)=>{
	  return b.value-a.value
})
=====================第二种排序
java对象集合排序--增加简写
public class PMovieDO2 implements  Comparable<PMovieDO2>{
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "id")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    private Integer fz;
    private String movid;
    @Override
    public int compareTo(PMovieDO2 o) {
//        return this.fz-o.fz>=0?1:-1;
        return o.fz-this.fz>=0?1:-1;
    }
}
//数据不能超过10万
Collections.sort(linkedList);
sets1.add("Java");
sets1.add("Java");
sets1.add("angela");
sets1.add("黑马");
sets1.add("Java");
sets1.add("About");
sets1.add("Python");
sets1.add("UI");
sets1.add("UI");
System.out.println(sets1);
==================简写
//
// Set<Apple> apples = new TreeSet<>(new Comparator<Apple>() {
// @Override
// public int compare(Apple o1, Apple o2) {
// // return o1.getWeight() - o2.getWeight(); // 升序
// // return o2.getWeight() - o1.getWeight(); // 降序
// // 注意:浮点型建议直接使用Double.compare进行比较
// // return Double.compare(o1.getPrice() , o2.getPrice()); // 升序
// return Double.compare(o2.getPrice() , o1.getPrice()); // 降序
// }
// });
Set<Apple> apples = new TreeSet<>(( o1, o2) -> Double.compare(o2.getPrice() , o1.getPrice()) );
实体类链式编程   @Accessors(chain=true)  
执行计算机命令
        Runtime runtime = Runtime.getRuntime();
        System.out.println("runtime = " + runtime);
        Process ipconfig = runtime.exec("ipconfig");
        System.out.println("ipconfig = " + ipconfig);
        InputStream inputStream = ipconfig.getInputStream();
        byte[] arr = new byte[1024 * 1024 * 1000];
        int b=inputStream.read(arr);
//        System.out.println(new String(arr,0,b,"gbk"));
        String gbk = new String(arr, 0, b, "gbk");
        System.out.println("gbk = " + gbk);
        inputStream.close();
批量查询
@Select({"<script>" +
        "SELECT * FROM `p_movie` where id in " +
        "<foreach item='goodsId' index='index' collection='list' open='(' separator=',' close=')'>" +
        "#{goodsId}",
        "</foreach>",
        "</script>"})
List<PMovieDO> getGoodsList(List<String> goodsIds);
js字符串替换str.replace(",",":")
每一个数组里面的元素拼接 arrNew.join("\r\n")
js截取指定开头和结尾,但不包括
/(?<=指定开头).*?(?=指定结尾)/
let reg=/(?<=\/\/).*?(?=:)/
var res = url.match(reg) ;
一、 截取指定开头结尾(包头包围),以及中间部分的内容
let matchReg = /指定开头.*?指定结尾/g
字符串.match(matchReg)
auto-complete="new-password"--密码不自动添加
:close-on-click-modal="false"--el-dialog弹窗点击其他位置不会消失
java的小数字截断
NumberUtil.round(1.22,1)
NumberUtil.roundStr(1.222,2)
limt查询LambdaQueryWrapper----.last("limit 7")
去重,时间区间,or换算成in的多条件查询
LambdaQueryWrapper<SaleplanDO> Query = new LambdaQueryWrapper<SaleplanDO>();
Query.select(SaleplanDO::getGoodsName).groupBy(SaleplanDO::getGoodsName);
Query.in(SaleplanDO::getStatus,"已出库","已通过");
Query.ge(SaleplanDO::getApprovetime,stime);
Query.le(SaleplanDO::getApprovetime,etime);
List<SaleplanDO> buyplanDOS = saleplanMapper.selectList(Query);
分组查询 new LambdaQueryWrapper<DefectCodeDO>().select(DefectCodeDO::getDefectZrdw).groupBy(DefectCodeDO::getDefectZrdw)
select ifnull(sum(num),0)--SUM函数,会忽略NULL值,对非NULL值求和。 但需要注意的是,如果没查到数据,或字段全为NULL,则SUM函数返回NULL。为避免出现空指针,一般我们希望的是返回0
StringUtils.isNotBlank("null");//当Str为空白或者null时,isNotBlank返回false,当Str的length>0时,isNotBlank返回true
QueryWrapper<SEndoftableDo> QueryWrapper = new QueryWrapper<>();
QueryWrapper.select("sum(mould_num) as mould_num").lambda().eq(SEndoftableDo::getCarType,"VW371");使用聚合函数
 
集合转换成数组--打印数组
LinkedList<String> linkedList = new LinkedList<>();
linkedList.add("京");
String[] array = linkedList.toArray(new String[linkedList.size()]);
System.out.println(Arrays.toString(array));
int[][]array={{1,2,3},{4,5,6}};
System.out.println(Arrays.toString(array));//打印的是地址
System.out.println(Arrays.deepToString(array));
String s = NumberUtil.roundStr((double) zxs / num * 100, 1);//小数切断
==============================================================
字符串转换json/对象转字符串json---Js
var doublearr = JSON.stringify(result);  //对象转换json格式字符串
var obj = JSON.parse(doublearr);  //json格式的字符串转换成对象
Student student = JSON.parseObject(s, Student.class);//字符串转换对象
return JSON.parse(s);//json格式字符串返回前端
String toJSONString = JSON.toJSONString(linkedList1);
JSONArray jsonArray = JSONObject.parseObject(mid).getJSONArray("results");
Object image1 = JSONObject.parseObject(s1).get("backdrop_path");
String name = JSONObject.parseObject(mid).getJSONObject("belongs_to_collection").get("name").toString();
JSONArray objects = JSONObject.parseArray(data);
实体类----注解
@Data
@AllArgsConstructor
@NoArgsConstructor//传出去的第一次vo
@TableName("t_archive")
@TableField("max")//映射数据库中错误字段
@TableField(exist = false)//该字段不用映射到数据库字段进行查询
@JsonIgnore//该字段不返回给前端
@JsonProperty(value = "Title")
private String title;返回给前端的的实体类大写
@Version//版本号
返回前端的时间数据格式化
jackson:
  date-format: yyyy-MM-dd HH:mm:ss.SSS
# ArrayList<Integer> arrayList = new ArrayList<>();//有序、可重复、有索引
# et<String> r3PartsNumber = new LinkedHashSet<>();//有序、不重复、有索引
# List<String> linkedList = new LinkedList<>();//有序,可重复,有索引
# LinkedHashMap<String, Object> map = new LinkedHashMap();
# LambdaQueryWrapper<Everyday> lqw = Wrappers.lambdaQuery();
# Set<String> linkedList = new LinkedHashSet<>();绝对不重复
==========================================
String encode = URLEncoder.encode(a , "UTF-8");//加密和解密
String decode = URLDecoder.decode(a, "UTF-8");//解密
map的for循环
map4.forEach((k, o) -> {})
分页
for (Integer i = 1; i <= (pages-pages%5)/5;i++) {
    dataPage1.add(i);
}
for (Integer i = (pages-pages%5)/5+1; i <= (pages-pages%5)/5*2+1;i++) {
    dataPage2.add(i);
}
for (Integer i = (pages-pages%5)/5*2+2; i <= (pages-pages%5)/5*3+1;i++) {
    dataPage3.add(i);
}
for (Integer i = (pages-pages%5)/5*3+2; i <= (pages-pages%5)/5*4+1;i++) {
    dataPage4.add(i);
}
for (Integer i = (pages-pages%5)/5*4+2; i <= pages;i++) {
    dataPage5.add(i);
}
int flag = (int) Math.ceil((double) totalCount / 100);
for (int i = 0; i < flag; i++) {
    if (network.equals("内网")) {
        map.put("currentPage", i + 1);
        ResponseEntity<String> returedata2 = YdReturnData2.returedata(urlStr, token, map, "proyx");
        JSONArray data = JSONObject.parseObject(returedata2.getBody()).getJSONArray("data");
        dataList.add(data);
    } else {
        map.put("currentPage", i + 1);
        ResponseEntity<String> returedata2 = YdReturnData2.returedata(urlStr, token, map);
        JSONArray data = JSONObject.parseObject(returedata2.getBody()).getJSONArray("data");
        dataList.add(data);
    }
}
手写分页
LinkedList<Integer> linkedList = new LinkedList<>();
for (int i = 0; i < 157; i++) {
    linkedList.add(i);
}
int page=10;
int size1 = linkedList.size();
int cd = (int) Math.ceil((double) size1 / page);
System.out.println("cd = " + cd);
for (int i = 0; i < cd; i++) {
    List<Integer> integers=null;
    if (i < cd-1) {
        integers= linkedList.subList(10 * i, (i + 1) * page);
    } else {
        integers= linkedList.subList( i * page, size1);
    }
    System.out.println("integers = " + integers);
}
定时器案例
mounted() {
  this.se()
},
beforeDestroy() {
  clearInterval(this.tiem);
},
methods: {
  ss() {
    this.num=this.num+1;
    console.log("this.num",this.num );
  },
  se() {
    this.tiem=setInterval(this.ss, 2000)
  },
},
//js分页和数组
let currentPage=this.currentPage
let pageSize=this.pageSize
let menuDOS=this.tableData
let ks = (currentPage - 1) * pageSize;
let js = currentPage * pageSize;
if (js > menuDOS.length()) {
js = menuDOS.length();
}
return menuDOS.slice(ks, js);
echarts的鼠标事
var chart = this.$echarts.init(document.getElementById("main1"));
var targetvalue = val.targetdata;
// 对图表对象进行鼠标事件监听
this.chartInstance.on('mouseover',()=>{
clearInterval(this.timeId)
})
this.chartInstance.on('mouseout',()=>{
this.startInterval()
})
 
表格第一列聚合
objectSpanMethod({rowIndex, columnIndex}) {
  let arry=this.allData.tableData;
  if (columnIndex === 0) {
    let newArr = [];
    arry.forEach(() => {
      newArr.push(0);
    });
    for (let i = 0; i < arry.length; i++) {
      for (let j = 0; j < newArr.length; j++) {
        if (arry[i].line == arry[j].line) {
          newArr[j] = newArr[j] + 1;
        }
      }
    }
    var aIndex = 0;
    for (let j = 0; j < newArr.length; j++) {
      aIndex = aIndex + newArr[j];
      if (j === newArr.length - 1) {
        return [0, 0];
      }
      if (rowIndex === 0) {
        return [newArr[0], 1];
      }
      if (rowIndex === aIndex) {
        return [newArr[j + 1], 1];
      }
    }
  }
},
js定时器--需要声明一个全局变量去接
allData() {
this.timer = setInterval(() => {
// this.getBarList();
// this.getStockList();
this.getStatus();//要执行定时的业务
}, 5000);
},
离开的时候需要销毁--
beforeDestroy() {
	clearInterval(this.timer);
	this.timer = null;
},
 特征:
setInterval--重复执行,第一次执行会延时
setTimeout--延时执行,只执行一次
setTimeout--结合递归函数,能够模拟setInterval的重复执行
clearTimeout--清楚定时器创建的任务
 js延时执行
async se() {
	let timer=setTimeout(this.se2(),2000)
	clearTimeout(timer)
},
async se2() {
	console.log("这里是打印123123", );
},
js睡几秒
export function onBlur() {
	setTimeout(() => { tt.call(this) }, 50);
}
 
 
 
 
                    
                
                
            
        
浙公网安备 33010602011771号