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