java实现无序数组结构
一、数组的2种定义方式
数据类型 [] 数组名称 = new 数据类型[数组长度];
这里 [] 可以放在数组名称的前面,也可以放在数组名称的后面,一般放在名称的前面
数据类型 [] 数组名称 = {数组元素1,数组元素2,......}
这种方式声明数组的同时直接给定了数组的元素,数组的大小有给定的数组元素个数决定
public class ArrayStruct {
public static void main(String[] args) {
// int[] nums = new int[10];
// int nums[] = new int[10];
// nums = initArray( nums );
// int[] nums = { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 };
int nums[] = { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 };
printArray( nums );
}
public static int[] initArray( int[] arr ){
for( int i = 0; i < arr.length; i++ ){
arr[i] = i * 10;
}
return arr;
}
public static void printArray( int[] arr ){
for( int i = 0; i < arr.length; i++ ){
System.out.print( arr[i] + "\t" );
}
System.out.println();
}
}
二,实现一个自定义的数组结构,包含以下基本操作:
>插入数据
>删除数据
>查找数据
>遍历数据等
package com.ghostwu;
class MyDefineArrayStruct {
private int[] arr;
private int curLen;
private int length;
public MyDefineArrayStruct(){
curLen = 0;
length = 30;
arr = new int[length];
}
public MyDefineArrayStruct( int _length ) {
curLen = 0;
length = _length;
arr = new int[length];
}
public int length (){
return curLen;
}
public void print(){
for( int i = 0; i < curLen; i++ ){
System.out.print( arr[i] + "\t" );
}
System.out.println( );
}
public boolean add( int _value ){
if( curLen >= length ){
return false;
}else{
arr[curLen++] = _value;
}
return true;
}
public int getItem( int _index ){
if( _index < 0 || _index > curLen ) {
System.out.println( "数组下标越界" );
}
return arr[_index];
}
public int find( int _value ){
int i;
for( i = 0; i < curLen; i++ ){
if( arr[i] == _value ){
break;
}
}
if( i == curLen ) {
return -1;
}
return i;
}
public boolean delItem( int _value ){
int res = find( _value );
if( res == -1 ) return false;
else {
if( res == curLen - 1 ) {
curLen--;
}else {
for( int i = res; i < curLen - 1; i++ ){
arr[i] = arr[i+1];
}
curLen--;
}
}
return true;
}
public boolean updateItem( int _oldValue, int _newValue ){
int res = find( _oldValue );
if( res == -1 ){
System.out.println( "数组中不存在" + _oldValue );
return false;
}else{
arr[res] = _newValue;
return true;
}
}
}
public class SelfDefineArrayStruct {
public static void main(String[] args) {
MyDefineArrayStruct arr = new MyDefineArrayStruct( 10 );
arr.print();
arr.add( 10 );
arr.add( 20 );
arr.add( 30 );
arr.add( 40 );
arr.add( 100 );
arr.print();
arr.delItem( 10 );
arr.print();
System.out.println( arr.length() );
arr.delItem( 20 );
System.out.println( arr.length() );
arr.updateItem( 30, 300 );
arr.updateItem( 40, 400 );
System.out.println( arr.length() );
arr.print();
}
}
java实现无序数组结构的更多相关文章
- Java算法-------无序数组中的最长连续序列---------leetcode128
Given an unsorted array of integers, find the length of the longest consecutive elements sequence. F ...
- 对无序数组的并发搜索的java实现
对无序数组的并发搜索的实现可以充分的用到多cpu的优势 一种简单的策略是将原始数组按照期望的线程数进行分割,如果我们计划使用两个线程进行搜索,就可以把一个数组分成两个,每个线程各自独立的搜索,当其中有 ...
- java面向对象的有序数组和无序数组的比较
package aa; class Array{ //定义一个有序数组 private long[] a; //定义数组长度 private int nElems; //构造函数初始化 public ...
- Java中的数组与集合
此文转载自:http://student-lp.iteye.com/blog/2082362 在java编程的过程中,我们不能确定某一类型的对象到底会需要多少,为了解决这个问题,java提供了容纳对象 ...
- Atitit java的异常exception 结构Throwable类
Atitit java的异常exception 结构Throwable类 1.1. Throwable类 2.StackTrace栈轨迹1 1.2. 3.cause因由1 1.3. 4.Suppres ...
- 无序数组a,求a[i]-a[j]的最大值,且i<j
一道面试题:对于无序数组a,求a[i]-a[j]的最大值,其中i<j package test; import java.util.Arrays; public class FindMax { ...
- 【JAVA零基础入门系列】Day10 Java中的数组
什么是数组?顾名思义,就是数据的组合,把一些相同类型的数放到一组里去. 那为什么要用数组呢?比如需要统计全班同学的成绩的时候,如果给班上50个同学的成绩信息都命名一个变量进行存储,显然不方便,而且在做 ...
- Java基础总结--数组
---数组的定义---组织存储一组数据1.存放相同类型数据的集合--就是一种容器本质上变量也是一种容器--区别就是只存储了一个数据的容器--面对容器,而不是分散的数据eg.买一盘鸡蛋--蛋托其实就是容 ...
- Java开发知识之Java中的Map结构
Java开发知识之Java中的Map结构 一丶Map接口 Map没有实现Collection接口,提供的是Key 到Value的映射. Map中.不能包含相同的Key,每个Key只能映射一个Value ...
随机推荐
- 超实用的 Nginx 极简教程,覆盖了常用场景
概述 什么是 Nginx? Nginx (engine x) 是一款轻量级的 Web 服务器 .反向代理服务器及电子邮件(IMAP/POP3)代理服务器. 什么是反向代理? 反向代理(Reverse ...
- Java面试题总结(附答案)
1.什么是B/S架构?C/S架构? B/S(Browser/Server),浏览器/服务器程序: C/S(Client/Server),客户端/服务端,桌面应用程序. 2.网络协议有哪些? HTTP: ...
- FTP服务器搭建
FTP 服务器架设: 关闭防火墙 service iptables stop 关闭SELinux setenforce 0 安装所需依赖及编译工具 yum install -y gcc openssl ...
- Apache Commons FileUpload 实现文件上传
Commons FileUpload简介 Apache Commons是一个专注于可重用Java组件开发的 Apache 项目.Apache Commons项目由三个部分组成: 1.Commons P ...
- PyTorch--双向递归神经网络(B-RNN)概念,源码分析
关于概念: BRNN连接两个相反的隐藏层到同一个输出.基于生成性深度学习,输出层能够同时的从前向和后向接收信息.该架构是1997年被Schuster和Paliwal提出的.引入BRNNS是为了增加网络 ...
- 数据库语句收藏(MySQL)
概览 => MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性. =>关键字不区分大小写 => S ...
- Java 中初始化 List 集合的 6 种方式!
List 是 Java 开发中经常会使用的集合,你们知道有哪些方式可以初始化一个 List 吗?这其中不缺乏一些坑,今天栈长我给大家一一普及一下. 1.常规方式 List<String> ...
- Java多线程可以分组,还能这样玩!
前面的文章,栈长和大家分享过多线程创建的3种方式<实现 Java 多线程的 3 种方式>. 但如果线程很多的情况下,你知道如何对它们进行分组吗? 和 Dubbo 的服务分组一样,Java ...
- node-sqlite3 学习笔记
* 使用sqlite3持久化数据 * 需求:把一个数组中的每个对象,每个对象中的属性,存到xxx.db文件中去,像数据库一样的去操作它 * 功能:1. 创建数据库(数据库存在的话,那就直接打开) * ...
- Jexus使用的相关记录
前言 本文是零零散散的记录,部分内容是我在平时工作中用到的,部分是从群里"偷"来的,所以难免会有一些错误. 主要还是希望能帮到部分使用Jexus的朋友. 安装 curl https ...