09.第十一章:继承和多态(2)

1.ArrayList 类

可以创建一个数组存储对象 , 但是这个数组一旦创建 , 它的大小就固定了 。 Java 提供 ArrayList 类来存储不限定个数的对象 。


2.Arrays类

  • 数组转为数组列表
String[ ] array = {"red","green","blue"};
ArrayList<String> list=new ArrayList<>(Arrays.asList(array)); 
  • 数组列表转为数组
String[] arrary=new String(list.size);
list.toArray(array)

3.Collection类

  • 排序
Intege  [ ] array = { 3 , 5 , 95 , 4 , 15 , 34 , 3 , 6 , 5 } ;
ArrayList < Integer > list = new ArrayList<>( Arrays . asList ( array )) ;
java . util . Collections . sort ( list ) ;
System . out . println ( list )
  • 返回最大最小值
Integer [ ] array « { 3 , 5 , 95 , 4 , 15 , 34 , 3 , 6 , 5 } ;
ArrayLi st < Integer > list=new ArrayList<> ( Arrays . asLi st ( array )) ;
System . out . println ( java . util . Collections . max ( list ) ) ;
System . out . println ( java . util . Collections . min ( list )) ;
  • 随机打乱列表元素
Integer [ ] array={ 3 , 5 , 95 , 4 , 15, 34 , 3, 6 , 5} ;
ArrayList < Integer > list = new ArrayLi st<>( Arrays . asList ( array )) ;
java . util . Collection . shuffle ( list ) ;
System . out . println ( list )

4.自定义栈类

  • 用ArrayList实现
public class MylistStack {
    private ArrayList<Object> list=new ArrayList<>();
    public boolean isEmpty(){
        return list.isEmpty();
    }
    public int getSize(){
        return list.size();
    }
    public Object peek(){
        return list.get(getSize()-1);
    }
    public Object pop(){
        Object o=list.get(getSize()-1);
        list.remove(getSize()-1);
        return o;
    }
    public  void push(Object o){
        list.add(o);
    }
}
  • 用数组实现
public class MyStack {
    private int []elements;
    private int top=-1;
    //设置默认的数组大小
    private static final int DEFAULT_CAPACITY=16;

    public MyStack(){
        elements=new int[DEFAULT_CAPACITY];
    }
    public boolean isEmpty(){
        return top==-1;
    }
    public int getsize(){
        return ++top;
    }
    public Object peek(){
        return elements[top];
    }
    public Object pop(){
        int value=elements[top];
        top--;
        return value;
    }
    public void  push(int value) {
        if (getsize() >= DEFAULT_CAPACITY) {
            //如果size>=数组的大小,就将数组的大小扩容
            int[] temp = new int[elements.length * 2];
            System.arraycopy(elements, 0, temp, 0, elements.length);
            elements = temp;
        }
    }

}

4.可见性修饰符


private 修饰符:同一个类的能访问
default修饰符:同一个包能访问
protected修饰符:同一个包或任何包中的子类
public修饰符:公开的

5.防止扩展和重写

使用 final 修饰符表明一个类是最终的 , 是不能作为父类的。


也可以定义一个方法为最终的 , 最终方法不能被它的子类重写 。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • 、6一、基本知识 1.JDK和JRE的区别 答:JDK是java语言开发工具包,包含JRE和开发工具(javac....
    梦游的沙师弟阅读 1,216评论 0 4
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,137评论 0 62
  • 5继承 5.1 类、超类和子类 重用部分代码,并保留所有域。“is-a”关系,用extends表示。 已存在的类被...
    我快要上天啦阅读 826评论 1 3
  • 还是用读书三境界插图 事情还是还是从楼上的老人聊天开始 我是一个渴望交流的人吗?应该是 可是为什么他们的聊天那么让...
    星空释痕阅读 247评论 0 4