一、数组的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实现有序数组和无序数组_【算法】字典的诞生:有序数组 PK 无序链表

    参考资料 <算法(java)>                           - - Robert Sedgewick, Kevin Wayne <数据结构>       ...

  2. (三)Java的基本程序结构(二)---数据输入、控制流、大数、数组

    Java的基本程序结构(二)-数据输入.控制流.大数.数组 文章目录 Java的基本程序结构(二)---数据输入.控制流.大数.数组 前言 一.数据输入 二.控制流 1.块作用域 2.流程控制语句分类 ...

  3. java无序数组找最长连续子串,算法题整理

    链表: 一个单链表,奇数位升序,偶数位降序,输出排序后的单链表.(写了个归并,拆成两个单链表并且把偶数位做头插翻转过来,再归并到一起.) 链表节点两两反转 奇偶链表 单向链表,头尾奇偶交替输出(中等) ...

  4. java无序数组_Java查找不重复无序数组中是否存在两个数字的和为某个值

    今天去某在线教育面试面试官让做的一道题,题目描述如下: 给定一个不重复的无序数组arr和一个定值num 查找arr中是否有两个数的和等于num 有则返回这两个数的下标(可能有多组, 只用返回一组), ...

  5. java集合框架的结构_集合框架(Collections Framework)详解及代码示例

    简介 集合和数组的区别: 数组存储基础数据类型,且每一个数组都只能存储一种数据类型的数据,空间不可变. 集合存储对象,一个集合中可以存储多种类型的对象.空间可变. 严格地说,集合是存储对象的引用,每个 ...

  6. php数组转java集合_php数组集合

    集合框架 集合框架 简介 集合的由来 数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加, ...

  7. Java基础之数组与集合

    Java基础之数组与集合 一.数组 二.冒泡排序算法 三.选择排序算法 四.二维数组 五.Arrays 工具 六.宠物管理系统 七.集合 Collection 八.List 九.重写 equals 方 ...

  8. 无序数组及其子序列的相关问题研究

    算法中以数组为研究对象的问题是非常常见的. 除了排序大家经常会遇到之外, 数组的子序列问题也是其中的一大分类. 今天我就对自己经常遇到的无序数组的子序列相关问题在这里总结一下. 前置条件: 给定无序数 ...

  9. java流类图结构_java I/O 流总结

    一.java 流操作有关的类和接口: 类                                                                          说明 Fil ...

最新文章

  1. Jetty源码学习3-启动服务器
  2. R 数据可视化 : 热图
  3. Atlas学习手记(5):使用服务端定时控件TimerControl
  4. 改进筛法- 质数中的质数(质数筛法)
  5. 雷林鹏分享:Ruby XML, XSLT 和 XPath 教程
  6. SetInterval和SettimeOut(转载文章)
  7. Python中的if __name__ == ‘__main__‘
  8. 关于MySQL二次安装问题
  9. python培训学习方法_python编程学习方法及技术进阶建议
  10. 从qq服务器删除误收邮件,如何恢复从qq邮箱删除的电子邮件
  11. hive udaf_Hive UDAF 函数的编写
  12. css3实现 依次出现三个点(一般用于提示加载中。。。 提交中。。。)
  13. mutiset HDOJ 5349 MZL's simple problem
  14. RTT distribution of Internet
  15. 数学分析教程(科大)——2.1笔记+习题
  16. 修改PPT文档属性工具使用教程
  17. matlab 函数输出 向量,matlab中的函数返回向量
  18. vue对象属性为null_vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题...
  19. php发送邮件封装类,使用nette/mail 封装一个发送邮件类 (通用)
  20. js手机号中间四位_为什么手机号码会影响我们?一个适合自己的手机号码有多重要?...

热门文章

  1. assubclass_Java类class asSubclass()方法及示例
  2. pata1015_ATA / PATA的完整形式是什么?
  3. php 虚拟空间,什么是php虚拟主机?
  4. xampp启动Apache端口被占用,修改端口
  5. 2016_icpc_dalian_onsite
  6. uva 10285——Longest Run on a Snowboard
  7. uva 12545——Bits Equalizer
  8. ZOJ 2060----Fibonacci Again
  9. linux c++ 多进程初步01
  10. sql语句的经典练习