JAVA上机作业一

                                         **JAVA上机课作业记录——实验一**


                                                     **实验一**

一.基本题

在这里插入图片描述
能在编译时而不时运行时检测出错误。

在这里插入图片描述

泛型类型在运行时会被消除,所以需要受限

在这里插入图片描述

不带原始类型参数的泛型类称为原始类型。

因为在进行多态调用的时候,没有进行泛型会出现类型不匹配,会报编译错误

因为使用原始泛型会兼容早期的JAVA版本

在这里插入图片描述

?,等价于?extend object

? Extend T

? super T

在这里插入图片描述

编译器可以使用泛型类型,但这些信息在运行时不可用

二.编程题,每道题都要求写一个测试用例

(1)
在这里插入图片描述

import java.util.Arrays;



public class ArrayGenericStack<E>

{

private int m=10;

private int last=0;

private E[] array;

public ArrayGenericStack()

{

 array=(E[])new Object[m];

}

public void push(E o)

{

 if (isFull())

 {

     m*=2;

     E[]newArray=(E[])new Object[m];

     int length=array.length;

     for(int i=0;i<length;i++)

     {

         newArray[i]=array[i];

     }

     array=newArray;

 

}

array[last]=o;

last++;

}

public E pop() {

if(isEmpty())

{

     return null;

}

E o=array[last--];

return o;

}

public E peek()

{

return array[last-1];

}

 public boolean isEmpty()

{

      return last==0;

 }

 public boolean isFull()

{

return last==m;

}

public String toString()

{

String info="";

for(int i=0;i<last;i++)

{

     info+=" "+array[i];

}

return info;

}

}

(2)
在这里插入图片描述

import java.util.ArrayList;

import java.util.Scanner;

public class ArrayListStack<E> extends ArrayList <E>

{



 public ArrayListStack()

{

        super();

}

        public int getSize()

        {

                   return super.size();

        }

        public int peek()

        {

                   return super.size();

        }

        public E pop()

        {

                   E m=super.get(getSize()-1);

                   super.remove(getSize()-1);

                   return m;

        }

        public void push(E m)

        {

                   add(m);

        }

        public boolean isEmpty()

        {

                   return super.isEmpty();

        }

        public String toString()

        {

                   return "ArrayListStack:" + super.toString();        }











        public static void main(String[]args) {

                   // TODO Auto-generatedmethod stub

   System.out.println("请输入五个字符");

Scanner input = new
Scanner(System.in);

ArrayListStack<String>
stack=new ArrayListStack<>();

String str=" ";

for (int i=0;i<5;i++)

{

        str=input.nextLine();

        stack.push(str);

        }

while (!stack.isEmpty())

{

        System.out.println(stack.pop());

 }

        }



}

(3 )
在这里插入图片描述

import java.util.*;

public class 队列去重 {



public static void main(String[] args) {

  // TODO Auto-generated method stub

Scanner input =new Scanner(System.in);

ArrayList<Integer>list=new ArrayList<>();

int m=0;

boolean in=true ;

System.out.println("输入一个整型列表,输入-1表示结束");

while(in)

{

m=input.nextInt();

if(m==-1)

{

     break;

}

list.add(new Integer(m));

}

ArrayList<Integer>list2=removeDulicates(list);

int size=list2.size();

for(int i=0;i<size;i++)

{

System.out.println(list2.get(i)+" ");

}

System.out.println();

}

public static <E> ArrayList<E>removeDulicates(ArrayList<E> list)

{

ArrayList<E>list2 =new ArrayList<>();

int size=list.size();

for(int i=0;i<size;i++)

{

if(list2.indexOf(list.get(i))==-1)

{

     list2.add(list.get(i));

}

}

return list2;

 }





}

(4)
在这里插入图片描述

import java.util.*;

public class FindMax {
public static void main(String[] args) {

     // TODO Auto-generated method stub

Integer[][]list=new Integer [10][10];

Scanner input =new Scanner (System.in);

System.out.println("请输入一个10行10列的二维数组");

for(int i=0;i<10;i++)

{

for(int j=0;j<10;j++)

{

     list[i][j]=input.nextInt();

}

}
Integer maxnum =max(list);

System.out.println("二维数组中最大值是"+maxnum);

}

 public static<E extends Comparable<E>>  E max (E[][] list)

{

int row=list.length;

int column=list[0].length;

E max=list[0][0];

for(int i=0;i<row;i++)

{

     for(int j=0;j<column;j++)

     {

         if(list[i][j].compareTo(max)>0)

         {

              max=list[j][j];

         }

     }

}

return max;

}

}

(5)
在这里插入图片描述

import java.util.*;

 public class UpsetArrayList {



public static void main(String[] args) {

     // TODO Auto-generated method stub

Scanner input =new Scanner(System.in);

ArrayList<Integer> list =new ArrayList<>();

System.out.println("输入一列整数,以-1为结尾");

boolean in=true;

while(in)

{

Integer num =input.nextInt();

if (num==-1)

{

     break;

}

else

{

     list.add(num);

}

}

 Upset(list);

 int size=list.size();

  for(int i=0;i <size;i++)

 {

  
System.out.println(list.get(i)+" ");

 }

 System.out.println();

}

public static <E> void Upset(ArrayList<E> list)

{

int size=list.size();

for(int i=0; i<size;i++)

{

     int index=(int)(Math.random()*size);

     E m=list.get(index);

     list.set(index, list.get(i));

     list.set(i, m);

}

}

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值