19.1 使用数组构造GenericStack类
public class GenericStack<E> {
private E[] list = (E[])new Object[10];
private int n=0;//用于访问和修改栈顶
public int getSize(){
return n;
}
public E peek(){
return list[n-1];
}
public void push(E o){
list[n]=o;
n++;
}
public E pop(){
E temp=list[n-1];
list[n-1]=null;
n--;
return temp;
}
public boolean isEmpty(){
return (list[0]==null);
}
@Override
public String toString(){
String s="";
int i=0;
while(list[i]!=null)
{s+=list[i]+" ";
i++;
}
return s;
}
}
19.2使用继承实现GenericStack
import java.util.ArrayList;
import java.util.Scanner;
public class GenericStack2<E> extends ArrayList<E>{
//由于子类的构造方法第一行会自动调用父类的无参构造方法即Super()
//因此此处默认的无参实例即可调用ArrayList的所有方法
public int getsize(){
return this.size();
}
public E peek(){
return this.get(getsize()-1);
}
public void push(E o){
this.add(o);
}
public E pop(){
E o=this.get(getsize()-1);
this.remove(getsize()-1);
return o;
}
public boolean isEmpty(){
return this.isEmpty();
}
}
19.3 ArrayList中的不同元素
import java.util.ArrayList;
import java.util.HashSet;
public class arraylist{
public static <E> ArrayList<E> removeDuplicates(ArrayList<E> list{
return new ArrayList<E>(new HashSet<E>(list));
//HashSet的底层实现依赖于HashMap中的key
//HashSet(ArrayList)将Arraylist转换为集合,集合内元素不重复
}
19.8 打乱数组
package second_;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
public class Homework19_8 {
public static <E> void shuffle(ArrayList<E> list){
int n=list.size()-1;
Random ran=new Random();//创建随机对象
for(int i=n;i>0;i--) {
int j=ran.nextInt(n+1);//生成0-n的随机整数
E temp=list.get(i);
list.set(i, list.get(j));
list.set(j, temp);
}
}
public static void main(String[] args) {
ArrayList<Integer> A= new ArrayList<Integer>(Arrays.asList(3,4,5,6,7,8,9));
//ArrayList初始化方式
shuffle(A);
System.out.print(A.toString());
}
}
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
更多推荐
Java语言程序设计与数据结构(进阶篇)梁勇课后题ex——19
发布评论