import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class MyArrayList {
private Object[] arr;
private int pointer;
public MyArrayList(){
arr = new Object[10];
pointer = -1;
}
public MyArrayList(int i){
arr = new Object[i];
pointer = -1;
}
public boolean add(Object e) {
// 在添加之前,判断数组是否够用?如果不够用?扩容!
if (pointer >= (arr.length - 1)) {
// 扩容
Object[] temp = new Object[arr.length + 10];
System.arraycopy(arr, 0, temp, 0, arr.length);
this.arr = temp;
}
this.arr[++pointer] = e;
return true;
}
public boolean addAll(Collection c) {
Iterator it = c.iterator();
while(it.hasNext()){
this.add(it.next());
}
return true;
}
public boolean addAll(int index, Collection c) {
// TODO Auto-generated method stub
return false;
}
public void clear() {
this.arr = new Object[10];
this.pointer = -1;
}
public boolean contains(Object o) {
boolean flag = false;
for (int i = 0; i < this.arr.length; i++) {
if (o == arr[i] || o.equals(arr[i])) {
flag = true;
break;
}
}
return flag;
}
public boolean containsAll(Collection c) {
boolean flag = true;
Iterator it = c.iterator();
while(it.hasNext()){
if(!this.contains(it.next())){
flag = false;
break;
}
}
return flag;
}
public Object get(int index) {
if (index > this.arr.length - 1) {
throw new IndexOutOfBoundsException("给定下标越界");
} else {
return this.arr[index];
}
}
public int indexOf(Object o) {
int index = -1;
for(int i=0;i<arr.length;i++ ){
index++;
if(contains(o))break;
}
if(index>=arr.length)index=-1;
return index;
}
public boolean isEmpty() {
return false;
}
public Iterator iterator() {
return null;
}
public int lastIndexOf(Object o) {
// TODO Auto-generated method stub
return 0;
}
public ListIterator listIterator() {
// TODO Auto-generated method stub
return null;
}
public ListIterator listIterator(int index) {
// TODO Auto-generated method stub
return null;
}
public boolean remove(Object o) {
if(!contains(o)){
return false;
}else{
int index = indexOf(o);
remove(index);
return true;
}
}
public Object remove(int index) {
Object obj = null;
if(index<0||index>arr.length){
throw new IndexOutOfBoundsException();
}else{
obj = arr[index];
if(index==arr.length-1){
arr[index]=null;
}else{
for(int i=index;i<arr.length-1;i++){
arr[i]=arr[i+1];
}
arr[arr.length-1]=null;
}
}
return obj;
}
public boolean removeAll(Collection c) {
// TODO Auto-generated method stub
return false;
}
public boolean retainAll(Collection c) {
// TODO Auto-generated method stub
return false;
}
public Object set(int index, Object element) {
// TODO Auto-generated method stub
return null;
}
public int size() {
return this.pointer + 1;
}
public List subList(int fromIndex, int toIndex) {
// TODO Auto-generated method stub
return null;
}
public Object[] toArray() {
// TODO Auto-generated method stub
return null;
}
public Object[] toArray(Object[] a) {
// TODO Auto-generated method stub
return null;
}
}
相关推荐
【Power Query】List.Range & List.Skip
介绍了 List.Range 的用法和一些应用,例如计算累加值,在每一行里面插入表头
链表之LIST
文章目录LIST 示意图接口和实现举例代码分析LIST_ENTRY 和 LIST_HEADLIST_INIT 和 LIST_INSERT_HEADLIST_INSERT_AFTERLIST_INSERT_BEFORELIST_FOREACHLIST_REMOVELIST_FIRST 和 LIST_NEXT参考资料 上一篇博文 链表之SLIST_车子(chezi)-优快云博客 说过,queue.h 里面有 5 种链表,分别是: SLIST LIST STAILQ TAILQ CIRCLEQ 这篇文章说
隐藏技巧!用ArcGIS Pro像素编辑器实现PS级影像编辑(附地貌伪装案例)
本文深入探讨ArcGIS Pro像素编辑器的创意应用,从基础操作到高级影像处理实战,展示了其在城市规划、环境分析等领域的独特价值。通过详细的功能解析和地貌伪装等案例,帮助用户实现媲美专业图像处理软件的精细操作,提升GIS工作效率。
list类,这不是一看就懂吗!
list这个类就是属于STL的一部分,list在这里是一个类类型的模板,简单来说,list就是我们之前所学过的带头双向循环链表这个数据结构。
瑞芯微RK系列 vs 全志系列芯片:终极选型指南(2025版)
。
python爬虫抖音 个人资料 仅供学习参考 切勿用于商业
本文仅供学习参考 切勿用于商业 本次爬取使用fiddler+模拟器(下载抖音APP)+pycharm 1. 下载最新版本的fiddler(自行百度下载),以及相关配置 1.1.依次点击,菜单栏-Tools-Options-HTTPS,如图1红框打钩,HTTPS旁边Connections配置,如图2红框打钩 1.2.再次点击HTTPS栏,点击Actions选择第二个…to ...
一个list删除另一个list的数据
文章来源:https://blog.youkuaiyun.com/lihua5419/article/details/86543251 思路: 有两个list (分别为list1和list2,将list1里面的list2元素删除) 先将list1和list2去重,然后list1删除所有的list2,将list1添加到新集合里 public static void main(String[] args) { //List<long>类型 List<Long> list=new ArrayL
【开源电机驱动】位置环控制
这是三闭环里的最后一个:位置闭环控制。如果你认真的阅读并推导了前章节,那么这一节将会很好理解。一如既往,我会使用简练的语言来描述复杂的问题。本章节主要涉及位置环的一些概念,以及控制框图。文章不会涉及具体的代码。
FreeRTOS学习——链表list
FreeRTOS学习——链表(列表)list,仅用于记录自己阅读与学习源码*list_t只能存储指向list_item_t的指针。每个list_item_t都包含一个数值(xItemValue)。大多数时候,列表是按项目值升序排列的。*创建的列表已包含一个列表项。此项的值是可以存储的最大值,因此它始终位于列表的末尾,并充当标记。列表成员pxHead始终指向此标记,即使它位于列表的末尾。这是因为尾部包含一个返回指针,指向列表的真正头部。
YOLOv11涨点改进| TGRS 2026 顶刊| 注意力改进篇| 引入MSEA多尺度边缘感知注意力,助力红外小目标检测、遥感目标检测、工业缺陷检测、图像去雨雾任务高效涨点
🔥本文提出了一种基于MSEA多尺度边缘感知注意力的YOLOv11改进模型,通过增强网络对边缘、纹理和细粒度信息的感知能力,显著提升复杂背景下的目标检测性能。MSEA模块采用多尺度空洞卷积提取上下文特征,并通过边缘监督和注意力融合机制强化目标边界信息。实验表明该方法在小目标、边界模糊目标和复杂纹理目标检测任务中表现优异,尤其在遥感、工业缺陷和红外检测等场景具有显著优势。文章详细介绍了MSEA的结构原理、核心代码实现、模块配置方法以及三种YOLOv11改进方案.
2021年全网最细 VirtualBox 虚拟机安装 Ubuntu 20.04.2.0 LTS及Ubuntu的相关配置
目录一、VirtualBox 虚拟机的安装1. VirtualBox 的下载和安装2. 设置 VirtualBox 存储文件夹3. 在 VirtualBox 创建虚拟机二、Linux 操作系统(Ubuntu)的安装1. Linux 操作系统(Ubuntu)的下载2. 安装 Ubuntu3. 启动 Ubuntu三、配置 Ubuntu1. 设置终端2. 设置共享剪贴板3. 设置共享文件夹 一、VirtualBox 虚拟机的安装 VirtualBox 是由德国 Innotek 公司开发,由 Sun Microsy
MySQL之LIST和LIST COLUMNS分区初探
阅读本文时,请先阅读《MySQL之RANGE和RANGE COLUMNS分区初见》。 LIST分区 LIST分区和RANGE分区有很多相似的地方。两者也有主要的不同之处,在LIST分区中,每个分区都是根据一组值列表中的列值的来定义和选择的,而不是在一组连续的值范围中的一个。使用PARTITION BY LIST(expr)来定义,expr是一个列的值,或者是一个基于列值的表达式,要求expr是整数值。通过VALUES IN (value_list)定义每一个分区,value_list...
SerDes系列之码间干扰的概念
码间干扰出现在传输介质或者元器件的带宽小于所发送的信号带宽时,从时域角度来看,传输路径的带宽限制会使发送信号的上升沿的变化速率变慢,有可能对信号造成高频衰减,并影响到实际数字逻辑电平的转换时序。
linux中的list
目录 队列的操作,相关函数 宏、函数分析 定义、初始化list_head的方法 list_entry(ptr, type, member) list_for_each_entry(pos, head, member) 队列的操作,相关函数 INIT_LIST_HEAD(); LIST_HEAD_INIT(); list_add_tail(); list_del()...
QQ也能连接OpenClaw啦!手机QQ远程操控本地AI保姆级教程
2026年最新OpenClaw与QQ连接教程发布,支持手机远程操控本地AI。腾讯官方推出QQ Bot插件,无需服务器即可实现三步绑定。教程提供三种连接方案:新手首选的扫码连接(10分钟搞定)、稳定的QQ群机器人方案,以及公网接入方案。详细步骤包括版本更新、插件安装、扫码绑定和功能测试,并附常见问题解决方案。该功能让用户通过QQ指令即可实现文件整理、文档生成等电脑操作,真正实现"手机发指令,电脑自动干"。
NTscan扫描工具
ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。
终于理解list_entry和list_for_each_entry
内核中经常采用链表来管理对象,先看一下内核中对链表的定义 struct list_head { struct list_head *next, *prev; }; 一般将该数据结构嵌入到其他的数据结构中,从而使得内核可以通过链表的方式管理新的数据结构,看一个例子: struct example { member a; struc...
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
C语言list头文件_freertos中的list.c和list.h文件详解
小白理解 抛砖引玉 欢迎加v共同学习!!!加V请备注"Freertos "。备注:本系列均基于stm32cubeIDE,并非keilV5哦!!!FreeRTOS基本文件生成和说明在Middleware下勾选Freertos,接口选择CMSIS_V1或CMSIS_V1,点击上方小齿轮重生成代码后,将在“project explorer->Middlewares->Third_Party-...
RU DOS版、EFI版32bit/64bit BIOS常用工具
DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。
锂电池充电器电路设计 里面有电路
锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。
linux——list.h
*linux中的头文件list.h 在Linux的源码中有一个自己为建立链表而写的链表头文件,以后可以直接调用里面的函数来使用链表。 list.h在linux中的路径为/usr/src/kernels/include/linux。不同的版本可能不一样。 list.h中有两个宏定义:#define LIST_HEAD_INIT(name) {&(name),&(name)} #define LI
C# list介绍
一、LIST概述 所属命名空间:System.Collections.Generic public class List : IList, ICollection, IEnumerable, IList, ICollection, IEnumerable List类是 ArrayList 类的泛型等效类。该类使用大小可按需动态增加的数组实现 IList 泛型接口。 泛型的好处: 它为使用c#语言编...
list stream:计算对象List中某个字段的总和
计算一个number类型的List对象总和 Integer[] integerArray = {1, 3, 5, 10, 18}; List<Integer> list = new ArrayList<>(Arrays.asList(integerArray)); IntSummaryStatistics summaryStatistics = list.stream(...
kernel:list LIST_HEAD/LIST_HEAD_INIT/INIT_LIST_HEAD
#define LIST_HEAD_INIT(name) { &(name), &(name) } #define LIST_HEAD(name) \ struct list_head name = LIST_HEAD_INIT(name) static inline void INIT_LIST_HEAD(struct list_head *list) { list->
checkpoint queue 和 write list
在oracle中存在 dirty list(也就是write list)的说法,但是同时又有checkpoint queue 。这两个东西往往让人容易混淆。他们是同一个东西吗?之间关系如何? 在阐述之前,我们先来看一段大师的描述http://www.ixora.com.au/q+a/0103/07160329.htmThat information is not quite right. It i
Linux list 设计
该结构本身不存储任何业务数据,仅用于维护链表关系。
第七章 SQL聚合函数 LIST
文章目录第七章 SQL聚合函数 LIST大纲参数描述包含逗号的数据值LIST 和 %SelectModeLIST 和 ORDER BY最大列表大小相关的聚合函数示例 第七章 SQL聚合函数 LIST 创建逗号分隔值列表的聚合函数。 大纲 LIST([ALL | DISTINCT [BY(col-list)]] string-expr [%FOREACH(col-list)] [%AFTERHAVING]) 参数 ALL - 可选-指定LIST返回string-expr的所有值的列表。 如果没有指定关键字
Common Lisp——List
要理解List关键在于理解构建它的更原始的数据类型,即cons cell。可以通过函数CONS创建它们。 CONS函数需要两个参数,并返回一个新的包含这两个参数的cons cell。CONS的参数可以引用任何类型的数据对象。除第二个参数为NIL或其他cons cell的情况,CONS返回的新的cons cell中的两个值被一个点号所隔开,这样的cons cell被叫做dotted pair。
内核数据结构之list
本文分析了Linux 2.6.10内核中双向链表的实现机制,重点解读了list.h中的关键设计。主要内容包括:1)使用毒药指针(LIST_POISON1/2)检测非法链表操作;2)链表节点的数据结构定义与初始化方法(LIST_HEAD_INIT、LIST_HEAD等宏);3)核心操作函数如list_add/list_add_tail的实现原理。文章通过代码片段和示意图,详细展示了Linux内核如何通过侵入式设计实现高效的双向链表结构,并利用指针操作维护链表完整性。这些设计体现了Linux内核在数据结构和内存
902



被折叠的 条评论
为什么被折叠?



