前端转全栈-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
相关推荐
微尘寒风2 小时前
【Git】的安装和使用
java·git
东风破_2 小时前
danci 项目(三):从 JSON 数据到 AI Coding,真实项目里的数据清洗、Prompt 和工程规范
前端·后端·node.js
y = xⁿ3 小时前
DeepSeek Harness 学习日记:关于Agent接口,工具调用的底层实现
android·java·学习
东风破_3 小时前
danci 项目(一):从需求到架构,一个单词学习系统为什么会这样设计
前端·后端·node.js
蒲公英eric3 小时前
从客户端到服务端:DVWA DOM 型 XSS 模块完整漏洞分析教程
前端·web安全·ai·xss·dvwa·ai安全
侧耳倾听1113 小时前
jwt使用简介
java·jwt
单线程_013 小时前
从案例分析 Vue3 Tokenizer+Parser 源码三
前端·javascript·vue.js
顶点多余4 小时前
那些在算法中适合巩固的知识点---1
java·前端·算法
AI人工智能+电脑小能手4 小时前
大白话说Java设计模式-46-责任链模式(业务实战篇)
java·设计模式·责任链模式·风控校验·servlet filter·spring interceptor·链式处理
Setsuna_F_Seiei4 小时前
前端转型 Agent 开发 03 之 Agent Tools - 给 Agent 装上手脚
前端·agent·ai编程