前端转全栈-day5(数组、list、set)

数组:

java 复制代码
public class Arr{
  public static void main(String [] args){
    // 创建一个长度为4 并且只能存放int类型的数据
    int[] arr1 = new int[4];
    // 创建一个初始值为【1,2,3】的数组
    int[] arr2 = new int[]{1,2,3};
    // 创建一个初始值为【2,3,4】的数组
    int[] arr3 = {2,3,4};
    for(int i = 0;i<arr2.length;i++){
      System.out.println(arr2[i]);
    }
    for(int num: arr3){
      System.out.println(num);
    }
    // 总结:
    // 一般实际业务中不会使用数组进行开发,因为数组不可以增删 只能对对应下标的元素进行改写
    // 类型+[]代表说明类型是什么元素的数组
    // 可以直接用花括号的方式来创建数组
    // 可以传统的for和for:循环; forEach循环必须要先转换为stream
  }
}

List:

最常用的是ArrayList,其中LinkedList是以链表结构来存储 差异只是在存储和读写速度 大多数ArrayList都是更优的选择

java 复制代码
import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;
import java.util.stream.Collectors;;

public class List1 {
  public static void main(String[] args) {
    ArrayList<String> arrayList = new ArrayList<>();
    // add 增
    arrayList.add("nihao");
    arrayList.add("我的名字:");
    arrayList.add("张三");
    arrayList.add("李四");
    // remove 删
    // arrayList.remove(3);
    // set 改
    arrayList.set(0, "你好");
    // get、indexOf 查
    System.out.println(arrayList.get(3));
    System.out.println(arrayList.indexOf("李四"));
    // clear 清空
    // arrayList.clear();
    // for、for:、forEach、iterator 基础遍历
    for (byte i = 0; i < arrayList.size(); i++) {
      System.out.println(arrayList.get(i));
    }
    arrayList.forEach((item) -> {
      System.out.println("hahaha" + item);
    });
    Iterator<String> jtem = arrayList.iterator();
    while (jtem.hasNext()) {
      System.out.println("迭代器" + jtem.next());
    }
    // fitter过滤等循环 得先转换为stream再调用具体的方法
    // 借助toList再转换为List返回
    List<String> arrayList2 = arrayList.stream().filter((val) -> val.equals("你好")).collect(Collectors.toList());
    // Collectors.toCollection(ArrayList::new) 转换为ArrayList返回
    ArrayList<String> arrayList3 = arrayList.stream().filter((val) -> val.equals("你好")).collect(Collectors.toCollection(ArrayList::new));
    System.out.println(arrayList3);
    // ArrayList::new就是lamda表达式的简写 如果()->里面只是简单的调用api 那么就可以简写为xxx::xx的方式
  }
}

Set:

java 复制代码
跟list的用法都是一模一样 只不过set会自动过滤重复项

总结:

  1. java的数组跟js的数组区别很大 java的数组必须固定类型固定长度 不可后期增删,实际业务场景用的很少
  2. java的list和set更接近于前端的array
  3. java的list的fitter sorted等遍历方法 必须先转成stream,返回值同样是stream 需要再借助Collectors来转换成对应的list或者arrayList
  4. lamda表达式如果只是简单调用api 可以简写为xxx::xx
相关推荐
汉堡大王95271 小时前
Vue 3 + TS + Element Plus 实战:如何从零搭建企业级违章记录管理 SaaS 前端
前端·javascript·vue.js
萧瑟余晖1 小时前
Java深入解析篇二十二之虚拟线程
java·开发语言
minimoon_jojo1 小时前
Ant Design 树形表格渲染原理
前端
OuO-21 小时前
笔试强训 Day 34:ISBN 号码、kotori 和迷宫、矩阵最长递增路径
java·算法·矩阵
paopaokaka_luck1 小时前
基于springboot3+vue3的音乐推荐系统(协同过滤算法、Echarts图形化分析)
前端·echarts
油丶酸萝卜别吃2 小时前
Java 集合类全景介绍
java·开发语言
钱栈up2 小时前
"Flowable 工作流引擎进阶实战(高级篇):任务分配、流程变量与监听器"
java
豆沙沙包?2 小时前
c++中引用(P7-P11)
java·c++·算法
八号当铺2 小时前
使用 Figma Agent Kit:插件 + MCP + 还原 Skill,打通本地设计协作
前端·人工智能·ai编程