数组分类

本文介绍了一种高效的数据去重算法,通过深拷贝原始数据列表并进行两层循环对比,剔除重复项,然后重新组织数据结构,将相同年份及学期的数据归类到一起,便于后续的数据分析与展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

let newDataList = deepClone(dataList);
for(let i=0 ; i<newDataList.length; i++) {
    for (let j=i+1; j<newDataList.length; j++) {
        if(newDataList[i].yearAddSemester==newDataList[j].yearAddSemester) {
            newDataList.splice(j,1);
            j=j-1;
        }
    }
}
let newList = [];
for(let i=0; i<newDataList.length; i++) {
    newList.push({yearAddSemester: newDataList[i].yearAddSemester, yearShow: newDataList[i].yearShow, allList: []});
}
for(let i=0; i<dataList.length; i++) {
    for(let j=0; j<newList.length; j++) {
        if(dataList[i].yearAddSemester == newList[j].yearAddSemester) {
            newList[j].allList.push(dataList[i]);
        }
    }
}
### Java数组分类实现方法 在Java中,数组是一种用于存储固定数量相同类型元素的数据结构。根据不同的标准,可以对数组进行多种分类[^3]。 #### 1. **按维度分类** - **一维数组** 这是最基本的形式,表示单列或多行的一系列数据项。通过指定索引来访问其中的每一个元素。例如: ```java int[] oneDimensionalArray = new int[5]; oneDimensionalArray[0] = 1; ``` - **多维数组** 多维数组通常指二维或更高维度的数组。它们可以通过嵌套的方式构建。例如,一个二维数组可以用以下方式声明并初始化: ```java int[][] twoDimensionalArray = { {1, 2, 3}, {4, 5, 6} }; ``` #### 2. **按内存分配时间分类** - **静态数组** 静态数组是在编译时就已知大小的数组。其长度不可改变,在程序运行期间保持不变。例如: ```java double[] staticArray = new double[10]; ``` - **动态数组** 动态数组允许在运行时调整大小。虽然Java原生数组不具备这一特性,但`ArrayList`等集合框架提供了类似的灵活性。例如: ```java import java.util.ArrayList; ArrayList<Integer> dynamicList = new ArrayList<>(); dynamicList.add(1); dynamicList.add(2); ``` #### 3. **按用途分类** - **数值型数组** 存储整数、浮点数或其他数值类型的数组。例如: ```java float[] numericArray = {1.1f, 2.2f, 3.3f}; ``` - **对象型数组** 可以用来保存自定义类的对象实例。例如: ```java class Person { String name; int age; } Person[] personArray = new Person[3]; personArray[0] = new Person(); personArray[0].name = "Alice"; personArray[0].age = 25; ``` #### 4. **按初始状态分类** - **未初始化数组** 创建后尚未赋值的数组,默认会填充零值(对于数值类型)、空字符串(对于字符类型),或者`null`(对于引用类型)。例如: ```java boolean[] uninitializedBooleanArray = new boolean[3]; // 默认为 false Object[] uninitializedObjectArray = new Object[3]; // 默认为 null ``` - **已初始化数组** 在创建的同时完成赋值操作。例如: ```java char[] initializedCharArray = {'a', 'b', 'c'}; ``` --- ### 示例代码展示 以下是几种常见数组分类的具体实现: ```java // 一维数组 int[] singleDimArray = {1, 2, 3}; // 二维数组 int[][] multiDimArray = {{1, 2}, {3, 4}}; // 对象数组 String[] stringArray = {"apple", "banana"}; // 动态数组模拟 import java.util.Arrays; public class ArrayExample { public static void main(String[] args) { Integer[] fixedSizeArray = new Integer[5]; Arrays.fill(fixedSizeArray, 0); // 填充默认值 System.out.println(Arrays.toString(fixedSizeArray)); } } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值