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

(1)新增元素;

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

(3)按位置删除元素;

(4)按值删除元素

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

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

 import java.util.Scanner;

 public class SequenceList {

     public static void main(String[] args) {
int a[] = { 1,5,4,6,8,3,4,0 };
int key;
int elem,index;
String c;
boolean flag=true;
Scanner sc = new Scanner(System.in);
IntUtil test = new IntUtil(a); out: while(flag) {
System.out.println("请输入相关选项:");
System.out.println("(1)新增元素");
System.out.println("(2)在指定位置插入一个元素");
System.out.println("(3)按位置删除元素;");
System.out.println("(4)按值删除元素 ");
System.out.println("(5)排序(增序)");
System.out.println("(6)排序(降序)");
System.out.println("(7)查询指定元素,返回下标位置");
System.out.println("(0)退出");
key = sc.nextInt();
switch(key) {
case 1:
System.out.println("请输入要添加的元素");
elem=sc.nextInt();
test.addElement(elem);
break;
case 2:
System.out.println("请输入添加的元素及位置");
elem=sc.nextInt();
index=sc.nextInt();
test.addElementAtIndexOf(elem, index);
break;
case 3:
System.out.println("请输入要删除元素的位置");
index=sc.nextInt();
test.deleteElementAtIndexOf(index);
break;
case 4:
System.out.println("请输入要删除的元素的值");
elem=sc.nextInt();
test.deleteElement(elem);
break;
case 5:
test.arraySortUp();
break;
case 6:
test.arraySortDown();
break;
case 7:
System.out.println("请输入要查找的元素");
elem=sc.nextInt();
test.searchElement(elem);
break;
case 0:
flag=false;
System.out.println("程序已结束");
break out;
default:
System.out.println("没有该选项,请重新输入");
continue;
}
System.out.println("是否继续?y/n");
c=sc.next();
if(c.equals("n"))
{ flag=false;
System.out.println("程序已结束");
}
if(c.equals("y"))
flag=true;
} } } class IntUtil {
int array[]; public IntUtil(int a[]) {
super();
array = a;
} public void arraySortDown() {
// TODO Auto-generated method stub for (int i = 0; i < array.length; i++) {
for (int j = i + 1; j < array.length; j++) {
if (array[i] < array[j]) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
show();
} public void arraySortUp() {
// TODO Auto-generated method stub
for (int i = 0; i < array.length; i++) {
for (int j = i + 1; j < array.length; j++) {
if (array[i] > array[j]) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
show();
} void addElement(int a) {
int[] newArray = new int[array.length + 1]; for (int i = 0; i < array.length; i++) {
newArray[i] = array[i];
} newArray[array.length] = a; array = newArray; show();
} void addElementAtIndexOf(int a, int index) {
index=index-1;
int[] newArray = new int[array.length + 1]; for (int i = 0; i < index; i++) {
newArray[i] = array[i];
} newArray[index] = a; for (int i = index + 1; i < array.length; i++) {
newArray[i] = array[i - 1];
}
newArray[array.length] = array[array.length - 1];
array = newArray;
show();
} void deleteElementAtIndexOf(int index) {
int[] newArray = new int[array.length - 1]; for (int i = 0; i < index - 1; i++) {
newArray[i] = array[i];
} for (int i = index; i < array.length; i++) {
newArray[i - 1] = array[i];
}
array = newArray;
show();
} void deleteElement(int a) {
for (int i = 0; i < array.length; i++) {
if (a == array[i]) {
deleteElementAtIndexOf(i + 1);
}
} } int elementAt(int a) {
return 0;
} int searchElement(int a) {
for(int i=0;i<array.length;i++)
{
if(array[i]==a)
{ System.out.println("该数的下标为"+i);
return 0;
} }
System.out.print("该数不存在");
return 0;
} void show() {
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+" ");
}
System.out.println();
}
}

最新文章

  1. Mysql 服务在本机,需要单机调试Mysql数据库 发生 不认识hostname‘localhost’
  2. MINA2 框架详解(转)
  3. OnNcCalcSize改变标题栏等的高度
  4. SqlServer时间格式化
  5. Myeclipse 2015 stable 2.0 完美破解方法
  6. BZOJ 4455: [Zjoi2016]小星星
  7. 真人动作捕捉系统 for Unity
  8. 7、JavaScript总结——实现选项卡切换的效果
  9. Maven 修改本地存储库位置--转
  10. HttpContext.Current多线程调用
  11. javaSE基础之 LinkedList的底层简单实现
  12. iOS中蓝牙的使用
  13. Python3字符串替换replace(),translate(),re.sub()
  14. Using iSCSI On Ubuntu 10.04 (Initiator And Target)
  15. 南邮ctf-web的writeup
  16. 协同过滤算法 teamCF
  17. day10.函数升级
  18. 数据库新秀 postgresql vs mongo 性能PK
  19. @Value(&quot;#{}&quot;) 和 @Value(&quot;{}&quot;)
  20. VC++窗口创建过程,图形绘制,时钟程序

热门文章

  1. JAVA程序错误总结
  2. poj1151 Atlantis (线段树+扫描线+离散化)
  3. druid 连接池加密算法
  4. Mybatis映射文件中#取值时指定参数相关规则
  5. 如何快速连接无线Wifi 使用二维码
  6. Java 占位符
  7. Kafka集群安装部署、Kafka生产者、Kafka消费者
  8. 关于spark写入文件至文件系统并制定文件名之自定义outputFormat
  9. android异步任务处理(网络等耗时操作)
  10. oralce 常用sql