一、数组的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实现无序数组结构的更多相关文章

  1. Java算法-------无序数组中的最长连续序列---------leetcode128

    Given an unsorted array of integers, find the length of the longest consecutive elements sequence. F ...

  2. 对无序数组的并发搜索的java实现

    对无序数组的并发搜索的实现可以充分的用到多cpu的优势 一种简单的策略是将原始数组按照期望的线程数进行分割,如果我们计划使用两个线程进行搜索,就可以把一个数组分成两个,每个线程各自独立的搜索,当其中有 ...

  3. java面向对象的有序数组和无序数组的比较

    package aa; class Array{ //定义一个有序数组 private long[] a; //定义数组长度 private int nElems; //构造函数初始化 public ...

  4. Java中的数组与集合

    此文转载自:http://student-lp.iteye.com/blog/2082362 在java编程的过程中,我们不能确定某一类型的对象到底会需要多少,为了解决这个问题,java提供了容纳对象 ...

  5. Atitit java的异常exception 结构Throwable类

    Atitit java的异常exception 结构Throwable类 1.1. Throwable类 2.StackTrace栈轨迹1 1.2. 3.cause因由1 1.3. 4.Suppres ...

  6. 无序数组a,求a[i]-a[j]的最大值,且i<j

    一道面试题:对于无序数组a,求a[i]-a[j]的最大值,其中i<j package test; import java.util.Arrays; public class FindMax { ...

  7. 【JAVA零基础入门系列】Day10 Java中的数组

    什么是数组?顾名思义,就是数据的组合,把一些相同类型的数放到一组里去. 那为什么要用数组呢?比如需要统计全班同学的成绩的时候,如果给班上50个同学的成绩信息都命名一个变量进行存储,显然不方便,而且在做 ...

  8. Java基础总结--数组

    ---数组的定义---组织存储一组数据1.存放相同类型数据的集合--就是一种容器本质上变量也是一种容器--区别就是只存储了一个数据的容器--面对容器,而不是分散的数据eg.买一盘鸡蛋--蛋托其实就是容 ...

  9. Java开发知识之Java中的Map结构

    Java开发知识之Java中的Map结构 一丶Map接口 Map没有实现Collection接口,提供的是Key 到Value的映射. Map中.不能包含相同的Key,每个Key只能映射一个Value ...

随机推荐

  1. ubuntu18.04LTS设置静态IP

    ubuntu18.04LTS设置静态IP 因为Ubuntu18.04采用的是netplan来管理network.所以在/etc/netplan/目录下有一个以yaml结尾的文件.比如01-networ ...

  2. 生成uuid唯一标识符

    generate_uuid: function(){ var d = new Date().getTime(); if(window.performance && typeof win ...

  3. Pycharm永久激活方式

    1.首先下载pycharm破解包 http://idea.lanyus.com/ 2. 将下载的文件放入PyCharm安装bin目录下: 3.在pycharm.exe.vmoptions ,pycha ...

  4. 多条SQL语句对查询结果集的垂直合并,以及表设计时如何冗余字段

    需求引入 你有一个销售单表A 和一个销售单详情表B 和一个收付款记录表C A---->B 一对多   A---->C一对多 如果一个销售单有两个详情,三条收款记录 对一个销售单 我们想查询 ...

  5. Web前端JQuery面试题(一)

    Web前端JQuery面试题(一) 一:选择器 基本选择器 什么是#id,element,.class,*,selector1, selector2, selectorN? 答: 根据给定的id匹配一 ...

  6. Python学习笔记【第五篇】:基础函数

    一.函数:函数定义关键字def  后跟函数名称 def 函数名(参数):             ...     函数体     ...     返回值 案例: # 定义函数 def say_hei( ...

  7. less编译工具——koala使用介绍

    1:使用koala编译软件    官网:http://koala-app.com/index-zh.html (目前官网点击下载没有反应,有人说可能是网络问题,但真正的原因是需要FQ才能下载了) 百度 ...

  8. Oracle报错#“ORA-01791: 不是 SELECTed 表达式”解决方法

    今天遇到一个Oracle报错,写篇博客记录一下 简单看一下下面这个sql,这也查询是没报错的 select a.area_seq, a.area_name from t_unit_area a WHE ...

  9. FAIR开源Detectron:整合全部顶尖目标检测算法

    昨天,Facebook AI 研究院(FAIR)开源了 Detectron,业内最佳水平的目标检测平台. 昨天,Facebook AI 研究院(FAIR)开源了 Detectron,业内最佳水平的目标 ...

  10. 基于python的OpenCV图像1

    目录 1. 读入图片并显示 import cv2 img = cv2.imread("longmao.jpg") cv2.imshow("longmao", i ...