java线性表源代码_线性表java实现之顺序存储源码

源码:

class SequenceList{

private int size=0;//表大小

private int max_length;//表长

private final int default_length = 20;//默认长度

private Object[] o;

//初始化

public SequenceList(){

max_length = default_length;

o = new Object[max_length];

}

public SequenceList(int init_length,T data){

max_length = init_length;

o=new Object[max_length];

o[0]=data;

size++;

}

//返回长度

public int getLength(){

return max_length;

}

//返回指定索引处值

/**

* @param location

* @return

*/

@SuppressWarnings("unchecked")

public T getValue(int location){

return (T) o[location];

}

//返回指定值的位置

public int getLocate(T data){

int tag=size-1;

while(tag>0){

if(o[tag].equals(data)){

break;

}

tag--;

}

return tag;

}

//插入数据

public void insert(T data,int location){

if(size > max_length-1){

throw new IndexOutOfBoundsException("超过线性表最大长度");

}else{

int flag = size;

while(flag>location){

o[flag] = o[flag-1];

flag--;

}

o[flag] = data;

size++;

}

}

public void add(T data){

insert(data, size);

}

//删除数据

public T delete(int location){

@SuppressWarnings("unchecked")

T old_value = (T) o[location];

if(location<0 || location > size-1){

throw new IndexOutOfBoundsException("不再线性表范围");

}else{

while(location

o[location] = o[location+1];

location++;

}

o[--size] = null;

}

return old_value;

}

//判断是否空表

public boolean isEmpty(){

if(size>0)

return false;

else

return true;

}

//清空表

public void clear(){

while(--size>=0){

o[size] = null;

}

}

@Override

public String toString() {

if(size <0 )

return "[]";

else{

StringBuffer sb = new StringBuffer("[");

int flag = 0;

while(flag < size){

sb.append(o[flag].toString()+",");

flag++;

}

return sb.delete(sb.length()-1, sb.length()).toString()+"]";

}

}

@Override

public boolean equals(Object obj) {

if(obj == null){

return false;

}

if(obj == this){

return true;

}

if(obj instanceof SequenceList){

@SuppressWarnings("unchecked")

SequenceList s = (SequenceList) obj;

if(s.size == size){

int flag=0;

while(o[flag] == s.o[flag]){

flag++;

}

if(flag == size-1){

return true;

}

}

}

return false;

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512824.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云上资源编排的思与悟

简介&#xff1a; 在传统软件架构下&#xff0c;撇开业务层代码&#xff0c;都需要部署计算节点、存储资源、网络资源&#xff0c;然后安装、配置操作系统等。而云服务本质上是实现 IT 架构软件化和 IT 平台智能化&#xff0c;通过软件的形式定义这些硬件资源&#xff0c;充分抽…

不用网关或代理的单点远程办公如何实现,Aruba推出EdgeConnect Microbranch

Aruba日前宣布推出全新EdgeConnect Microbranch解决方案&#xff0c;针对混合办公环境的家庭办公室和小型办公室的网络解决方案&#xff0c;可供远程工作人员通过单个Wi-Fi接入点 (AP) &#xff0c;安全地访问办公室内所有的传统办公服务&#xff0c;而无需在远程站点部署网关、…

阿里云力夺FewCLUE榜首!知识融入预训练+小样本学习的实战解析

简介&#xff1a; 7月8日&#xff0c;中文语言理解权威评测基准CLUE公开了中文小样本学习评测榜单最新结果&#xff0c;阿里云计算平台PAI团队携手达摩院智能对话与服务技术团队&#xff0c;在大模型和无参数限制模型双赛道总成绩第一名&#xff0c;决赛答辩总成绩第一名。 作…

java 线程 内存分配内存_漫谈JAVA语言的内存分配

在说JAVA语言的内存分配之前&#xff0c;我们先聊聊OS的Memory Management&#xff0c;这是学习操作系统课程的一个重要内容。从这里开始理解内存分配有利于理解的更深入。我们知道物理内存是由page 和segment 方式混合管理的&#xff0c;映射的过程如下图所示&#xff1a;从物…

【产品干货】经典营销模型的产品化介绍

简介&#xff1a; 为什么说Quick Audience是集数据资产构建、用户分析、精准营销投放、跨端社交互动和全域会员管理为一体的全域消费者运营平台&#xff0c;其中一个很大的原因是置入了经典营销模型&#xff0c;如RFM模型与AIPL模型&#xff0c;由方法论支撑消费者运营&#xf…

python 多线程 廖雪峰_python中多线程与多进程中的数据共享问题

之前在写多线程与多进程的时候&#xff0c;因为一般情况下都是各自完成各自的任务&#xff0c;各个子线程或者各个子进程之前并没有太多的联系&#xff0c;如果需要通信的话我会使用队列或者数据库来完成&#xff0c;但是最近我在写一些多线程与多进程的代码时&#xff0c;发现…

填平数据、产品、模式需求鸿沟,浪潮云发布新一代行业云 MEP战略

围绕安全这一核心&#xff0c;浪潮云从新模式&#xff08;New Model&#xff09;、新要素&#xff08;New Essential Factor&#xff09;、新产品&#xff08;New Product&#xff09;三大方面出发&#xff0c;提出新一代行业云MEP战略。 出品 | CSDN云计算 12月16日&#xff0…

hpsocket java代码_HPSocket介绍与使用

一、HPSocket介绍HP-Socket是一套通用的高性能TCP/UDP/HTTP 通信框架&#xff0c;包含服务端组件、客户端组件和Agent组件&#xff0c;广泛适用于各种不同应用场景的TCP/UDP/HTTP通信系统&#xff0c;提供C/C、C#、Delphi、E(易语言)、Java、Python等编程语言接口。HP-Socket对…

Dapr 在阿里云原生的实践

简介&#xff1a; Faas 场景下&#xff0c;比较吸引用户的是成本和研发效率&#xff0c;成本主要通过按需分配和极致的弹性效率来达成。而应用开发者期望通过 FaaS 提供多语言的编程环境&#xff0c;提升研发效率&#xff0c;包括启动时间、发布时间、开发的效率。​ 作者&…

postgre 生成数据库html文档_还在手动整理数据库文档?试试这个(螺丝钉)数据库文档生成工具...

简介在企业级开发中、我们经常会有编写数据库表结构文档的时间付出&#xff0c;从业以来&#xff0c;待过几家企业&#xff0c;关于数据库表结构文档状态&#xff1a;要么没有、要么有、但都是手写、后期运维开发&#xff0c;需要手动进行维护到文档中&#xff0c;很是繁琐、如…

OpenFaaS - 以自己的方式运行容器化函数

作者 | Addo Zhang来源 | 云原生指北译者注&#xff1a; 本文篇幅较长&#xff0c;有助于了解 FaaS 和 OpenFaaS。作者分别从开发人员和运维人员的视角来了解 OpenFaaS&#xff0c;对了解新的技术是个很好的方式。本文翻译自 Ivan Velichko[1] 的 OpenFaaS - Run Containerized…

技术人生第5篇——浅谈如何成为技术一号位?

简介&#xff1a; 认清每个人自己在日常工作中的思维定式非常重要&#xff0c;有助于转变自己对很多事情的认知&#xff0c;而这种转变也会从根本上带来行为上的变化。也就是说&#xff0c;可以通过理论分析和实践&#xff0c;来共同完成对个人实际生活的影响。今天这篇文章&am…

元宇宙真的是「割韭菜」吗?

作者 | 小枣君来源 | 鲜枣课堂我们究竟该如何看待元宇宙&#xff1f;元宇宙为什么会火&#xff1f;它到底有没有价值&#xff1f;它真的是“割韭菜”吗&#xff1f;今天这篇文章&#xff0c;小枣君想说说自己的看法。█ 元宇宙为什么会火&#xff1f;元宇宙的蹿红速度&#xff…

阿里仿真灰度变更测试简介

简介&#xff1a; 基础网络产品的生命周期大致包含研发、架构、交付、优化和运营等几个环节&#xff0c;每一个环节的质量保证都涉及重要的一环&#xff0c;即预期验证测试。本文将重点讲解一下如何在仿真测试平台进行灰度变更测试&#xff0c;从而保证变更的稳定性。 作者 | 聪…

树莓派开始玩转linux pdf_用树莓派构建 Kubernetes 集群 | Linux 中国

将 Kubernetes 安装在多个树莓派上&#xff0c;实现自己的“家庭私有云”容器服务。• 来源&#xff1a;linux.cn • 作者&#xff1a;Chris Collins • 译者&#xff1a;Xingyu.Wang •(本文字数&#xff1a;14330&#xff0c;阅读时长大约&#xff1a;18 分钟)将 Kubernetes …

非标准化的阀门企业也在用钉钉宜搭实现数字化转型

简介&#xff1a; 增长对于所有企业来说&#xff0c;都是机遇与挑战并存。对非标准化的制造企业来说&#xff0c;增长是一把双刃剑&#xff0c;它既是订单增长带来的销售提升&#xff0c;同时在另一边则往往是“低效与浪费”的困扰。 困扰非标制造业的两大难题 1、增长期的“…

慢SQL治理分享

简介&#xff1a; 这里的慢SQL指的是MySQL慢查询&#xff0c;是运行时间超过long_query_time值的SQL。真实的慢SQL通常会伴随着大量的行扫描、临时文件排序或者频繁的磁盘flush&#xff0c;直接影响就是磁盘IO升高&#xff0c;让正常的SQL变成了慢SQL&#xff0c;大面积执行超时…

英特尔表示:元宇宙的路还很长

编译 | 禾木木出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;现在每个人都在谈论元宇宙&#xff0c;各大公司也都在致力于访问它的硬件&#xff0c;而且它似乎最终可能成为万维网规模的下一个主要通信平台。但如果你问的话&#xff0c;「最终」还是有很长的…

java csv 追加_如何在Java中添加一个包含CSV数据的列

基于plirke示例代码和他的帮助,我编写了一个最终的工作代码。在这里分享它,这样它可能对有类似需求的人有用。import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOExcep…

案例|自建or现成工具?小型创业团队敏捷研发探索

简介&#xff1a; 实践和踩坑建议。 我是刘永良&#xff0c;是一名全栈开发者也是一名创业者&#xff0c;来自济南——一个目前被称为互联网洼地的地方。2020年4月和三位志同道合的朋友&#xff0c;在济南共同创建了山东旷野网络科技有限公司&#xff0c;主要从事自有项目和外包…