数组:
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会自动过滤重复项
总结:
- java的数组跟js的数组区别很大 java的数组必须固定类型固定长度 不可后期增删,实际业务场景用的很少
- java的list和set更接近于前端的array
- java的list的fitter sorted等遍历方法 必须先转成stream,返回值同样是stream 需要再借助Collectors来转换成对应的list或者arrayList
- lamda表达式如果只是简单调用api 可以简写为xxx::xx