自定义一个可以存储 int 类型的集合类(例如:SequenceList),封装一维数组存储数据,该 集合类具有以下方法:

(1)新增元素;

(2)在指定位置插入一个元素;

(3)按位置删除元素;

(4)按值删除元素

(5)排序(增序,降序)

(6)查询指定元素,返回下标位置。

  1. import java.util.Scanner;
  2.  
  3. public class SequenceList {
  4.  
  5. public static void main(String[] args) {
  6. int a[] = { 1,5,4,6,8,3,4,0 };
  7. int key;
  8. int elem,index;
  9. String c;
  10. boolean flag=true;
  11. Scanner sc = new Scanner(System.in);
  12. IntUtil test = new IntUtil(a);
  13.  
  14. out: while(flag) {
  15. System.out.println("请输入相关选项:");
  16. System.out.println("(1)新增元素");
  17. System.out.println("(2)在指定位置插入一个元素");
  18. System.out.println("(3)按位置删除元素;");
  19. System.out.println("(4)按值删除元素 ");
  20. System.out.println("(5)排序(增序)");
  21. System.out.println("(6)排序(降序)");
  22. System.out.println("(7)查询指定元素,返回下标位置");
  23. System.out.println("(0)退出");
  24. key = sc.nextInt();
  25. switch(key) {
  26. case 1:
  27. System.out.println("请输入要添加的元素");
  28. elem=sc.nextInt();
  29. test.addElement(elem);
  30. break;
  31. case 2:
  32. System.out.println("请输入添加的元素及位置");
  33. elem=sc.nextInt();
  34. index=sc.nextInt();
  35. test.addElementAtIndexOf(elem, index);
  36. break;
  37. case 3:
  38. System.out.println("请输入要删除元素的位置");
  39. index=sc.nextInt();
  40. test.deleteElementAtIndexOf(index);
  41. break;
  42. case 4:
  43. System.out.println("请输入要删除的元素的值");
  44. elem=sc.nextInt();
  45. test.deleteElement(elem);
  46. break;
  47. case 5:
  48. test.arraySortUp();
  49. break;
  50. case 6:
  51. test.arraySortDown();
  52. break;
  53. case 7:
  54. System.out.println("请输入要查找的元素");
  55. elem=sc.nextInt();
  56. test.searchElement(elem);
  57. break;
  58. case 0:
  59. flag=false;
  60. System.out.println("程序已结束");
  61. break out;
  62. default:
  63. System.out.println("没有该选项,请重新输入");
  64. continue;
  65. }
  66. System.out.println("是否继续?y/n");
  67. c=sc.next();
  68. if(c.equals("n"))
  69. { flag=false;
  70. System.out.println("程序已结束");
  71. }
  72. if(c.equals("y"))
  73. flag=true;
  74. }
  75.  
  76. }
  77.  
  78. }
  79.  
  80. class IntUtil {
  81. int array[];
  82.  
  83. public IntUtil(int a[]) {
  84. super();
  85. array = a;
  86. }
  87.  
  88. public void arraySortDown() {
  89. // TODO Auto-generated method stub
  90.  
  91. for (int i = 0; i < array.length; i++) {
  92. for (int j = i + 1; j < array.length; j++) {
  93. if (array[i] < array[j]) {
  94. int temp = array[i];
  95. array[i] = array[j];
  96. array[j] = temp;
  97. }
  98. }
  99. }
  100. show();
  101. }
  102.  
  103. public void arraySortUp() {
  104. // TODO Auto-generated method stub
  105. for (int i = 0; i < array.length; i++) {
  106. for (int j = i + 1; j < array.length; j++) {
  107. if (array[i] > array[j]) {
  108. int temp = array[i];
  109. array[i] = array[j];
  110. array[j] = temp;
  111. }
  112. }
  113. }
  114. show();
  115. }
  116.  
  117. void addElement(int a) {
  118. int[] newArray = new int[array.length + 1];
  119.  
  120. for (int i = 0; i < array.length; i++) {
  121. newArray[i] = array[i];
  122. }
  123.  
  124. newArray[array.length] = a;
  125.  
  126. array = newArray;
  127.  
  128. show();
  129. }
  130.  
  131. void addElementAtIndexOf(int a, int index) {
  132. index=index-1;
  133. int[] newArray = new int[array.length + 1];
  134.  
  135. for (int i = 0; i < index; i++) {
  136. newArray[i] = array[i];
  137. }
  138.  
  139. newArray[index] = a;
  140.  
  141. for (int i = index + 1; i < array.length; i++) {
  142. newArray[i] = array[i - 1];
  143. }
  144. newArray[array.length] = array[array.length - 1];
  145. array = newArray;
  146. show();
  147. }
  148.  
  149. void deleteElementAtIndexOf(int index) {
  150. int[] newArray = new int[array.length - 1];
  151.  
  152. for (int i = 0; i < index - 1; i++) {
  153. newArray[i] = array[i];
  154. }
  155.  
  156. for (int i = index; i < array.length; i++) {
  157. newArray[i - 1] = array[i];
  158. }
  159. array = newArray;
  160. show();
  161. }
  162.  
  163. void deleteElement(int a) {
  164. for (int i = 0; i < array.length; i++) {
  165. if (a == array[i]) {
  166. deleteElementAtIndexOf(i + 1);
  167. }
  168. }
  169.  
  170. }
  171.  
  172. int elementAt(int a) {
  173. return 0;
  174. }
  175.  
  176. int searchElement(int a) {
  177. for(int i=0;i<array.length;i++)
  178. {
  179. if(array[i]==a)
  180. { System.out.println("该数的下标为"+i);
  181. return 0;
  182. }
  183.  
  184. }
  185. System.out.print("该数不存在");
  186. return 0;
  187. }
  188.  
  189. void show() {
  190. for (int i = 0; i < array.length; i++) {
  191. System.out.print(array[i]+" ");
  192. }
  193. System.out.println();
  194. }
  195. }

Java 平时作业三的更多相关文章

  1. Java 平时作业四

    编写一个Java程序实现返回指定目录及其子目录下扩展名为*.pdf的所有文件名. 扩展: isFile public boolean isFile() 测试此抽象路径名表示的文件是否为普通文件. 如果 ...

  2. Java 平时作业七

    以下是几本计算机书籍的基本信息 编号  书名         价格      出版社 1  JAVA 基础   32   清华大学出版社 2  JAVA WEB 开发  40   电子工业出版社 3  ...

  3. Java 平时作业六

    编写一个 Java 应用程序,使用 Java 的输入输出流技术将 Input.txt 的内容(Input.txt 为文本 文件)逐行读出, 每读出一行就顺序为其添加行号(从 1 开始,逐行递增),并写 ...

  4. Java 平时作业五

    使用 I/O 流和文件对象实现目录备份功能. package asg5; import java.io.File; import java.io.FileInputStream; import jav ...

  5. JAVA 平时作业二

    编写一个 Java 应用程序,统计数组{1,3,4,7,2,1,1,5,2,5,7,2,1,1,3},统 计显示每种数字其出现的次数以及出现最多和最少次数的数字 public class Number ...

  6. JAVA 平时作业一

    public class Print { public static void main (String arg[]) { for(int i=0;i<16;i++) { for(int j=0 ...

  7. 2017-2018-1 JAVA实验站 第三周作业

    2017-2018-1 JAVA实验站 第三周作业 团队展示 队名 JAVA实验站 拟作的团队项目描述 (2048)增加其他模式,使得2048更加丰富多彩 团队的首次合照 团队的特色描述 团队内部很团 ...

  8. JAVA作业三

    (一)学习总结 1.阅读下面程序,分析是否能编译通过?如果不能,说明原因.应该如何修改?程序的运行结果是什么?为什么子类的构造方法在运行之前,必须调用父 类的构造方法?能不能反过来? class Gr ...

  9. 对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈

    对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈 一:教学中存在的学习问题 “1.由于同学们平时练习不足,上课总是出现跟不上老师的节奏的现象. 2.个别同学上课不认真听讲,打开 ...

随机推荐

  1. 实验一:c++简单程序设计(1)

    实验结论 编程练习2-28 switch版源码: #include <iostream> using namespace std; int main(void) { cout <&l ...

  2. 读书笔记--《编写高质量代码:改善Python程序的91个建议》

      第一章 引论 建议写Pythonic式的代码,我理解为充分利用pythonAPI,用最简洁方式写出代码 1.两个变量交换: a, b = b, a 2.翻转list: a = [1, 2, 3, ...

  3. Sitecore8.2 Solr5.1.0配置步骤

    1.首先下载Solr安装包,官方提供了几种下载,我选的的solr的5.1.0版本zip包,下载链接:http://mirror.bit.edu.cn/apache/lucene/solr. 2.下载后 ...

  4. CDH5.16.1集群新增节点

    如果是全新安装集群的话,可以参考<Ubuntu 16.04上搭建CDH5.16.1集群> 下面是集群新增节点步骤: 1.已经存在一个集群,有两个节点 192.168.100.19 hado ...

  5. 博客搬家一下到CSDN

    博客搬家一下到CSDN:http://blog.csdn.net/weixin_33409246

  6. POJ-2796 & 2019南昌邀请赛网络赛 I. 区间最大min*sum

    http://poj.org/problem?id=2796 https://nanti.jisuanke.com/t/38228 背景 给定一个序列,对于任意区间,min表示区间中最小的数,sum表 ...

  7. 博弈论初步(SG函数)

    讲解见此博客https://blog.csdn.net/strangedbly/article/details/51137432 理解Nim博弈,基于Nim博弈理解SG函数的含义和作用. 学习求解SG ...

  8. .NetCore WebApi 添加 Log4Net

    一 .配置 1.vs2019 创建一个.net core web程序,选择webapi 2.项目中添加一个配置文件:添加--新建项--XML文件,命名为log4net.config 我使用的是log4 ...

  9. python 等频率切分数据

    小编最近入坑风控,在工作中需要对数据进行等频率切分,也就是将数据划分成几段,在每段中,数据的出现频率,出现次数是大致相同的,让数据集在每段上呈现出分布均匀的趋势. 小编先是想到df.describe ...

  10. centos7与centos6命令区别

    CentOS 7 vs CentOS 6的不同    (1)桌面系统[CentOS6] GNOME 2.x[CentOS7] GNOME 3.x(GNOME Shell) (2)文件系统[CentOS ...