当前位置 博文首页 > 墨辰柒的博客:Java学习第十三天

    墨辰柒的博客:Java学习第十三天

    作者:[db:作者] 时间:2021-08-02 21:37

    Java学习第十三天知识点

    包装类: - 对应的就是8大基本数据类型

    byte    - Byte
    short   - Short
    int     - Integer
    long	- Long
    float	- Float
    double	- Double
    char	- Character
    boolean - Boolean
    

    1.创建方式:

    a.直接赋值创建
    	Integer i = 10;
    b.构造方法创建
    	new Integer(int i)
    	new Integer(String str)
    

    2.装箱和拆箱:

    自动拆箱: Integer -> int
    	i1.valueOf();
    
    自动装箱: int -> Integer
    

    3.常用API

    Integer/int  和 String之间的转换
    
    	String -> Integer:
    		a. Integer.valueOf()
    		b. new Integer(str)
    
    	String -> int:
    		a. Integer.parseInt()
    

    4.常量池:

    String a="abc"//这个abc就存在于常量池
    
    a.所有的包装类中只有Integer有常量池
    b.常量池有取值范围:
    	-128 ~ 127
    c.只要超过取值范围,全都是在new对象
    

    数组: 数组的扩容/缩容 -> 最基本的数据结构

    集合:可变长数组
    1.概念:集合相当于是一个容器,主要用来存储任意类型的数据

    2.分类:

    	Collection(I)
    		|- List(I)
    		|- Set(I)
    		|- Queue(I)
    
    	Map(I)
    

    Iterable - 接口
    1.API -> 只有一个方法 iterator() - 获取一个迭代器

    2.迭代器:

    a.作用:遍历/迭代集合(数组)所有元素
    b.三个方法:
    	hashNext() - 询问有没有下一个元素
    	next() - 移动到下一个元素,并返回该位置上的元素
    	remove() - 删除集合元素
    
      注意:如果迭代删除每一个元素,就必须使用迭代器方式进行删除否则会出现ConcurrentModificationException - 并发修改异常
    

    例子:

    package a;
    import java.util.ArrayList;
    import java.util.Iterator;
    
    public class IteratorDemo0 {
        public static void main(String[] args) {
            ArrayList<String> all = new ArrayList<String>();
            all.add("a");
            all.add("b");
            all.add("c");
    
            Iterator iterator = all.iterator();//实例化迭代器
    
            while(iterator.hasNext()){
                String str= (String) iterator.next();//读取当前集合数据元素
                if("b".equals(str)){
                    //all.remove(str);//使用集合当中的remove方法对当前迭代器当中的数据元素值进行删除操作(注:此操作将会破坏整个迭代器结构)使得迭代器在接下来将不会起作用
                    iterator.remove();
                }else{
                    System.out.println( str+" ");
                }
            }
            System.out.println("\n删除\"b\"之后的集合当中的数据为:"+all);
        }
    }
    
    	
    

    3.简易版迭代器 - foreach

     a.作用: 获取集合/数组中所有的元素
     b. 语法: for( : ){}
     	:前 ->  获取到的元素的临时变量
     	:后 ->  要遍历的集合/数组
     c.缺点:	只能获取元素,不能做删除操作
    

    例子:

    public static void listTest3(ArrayList list,String a){
        int count=0;
        for (Object arr:list){
            if (arr==a){
                count++;
            }
        }
        System.out.println(a+":"+count);
    }
    

    Colleti on集合:
    1.创建方式:

    	Colletion col = new ArrayList();
    

    2.常用API:

    	普通方法:
    		boolean add(E e) 
    		void clear() 
    		boolean contains(Object o) 
    		boolean isEmpty() 
    		boolean remove(Object o)
    		boolean remove(Object o) 
    
    	和集合相关的API:
    	 	boolean addAll(Collection<? extends E> c)
            boolean containsAll(Collection<?> c)
            boolean removeAll(Collection<?> c)
            boolean retainAll(Collection<?> c)
            强类型 -> 指定类型  例如:String
            弱类型 -> 没有指定类型(可以是所有类型)
    

    泛型:
    1.特点:

    a.所有是类型的地方都可以使用泛型来代替,泛型表示所有类型(Object)
    b.规定了泛型,就只是支持定义好的类型,只是在编译时有效,用来规范程序员写法
    c.运行时,还是支持Object类型
    

    2.定义泛型的步骤:

    a.在类/接口上定义加上<E>
    	ps:  Collection<E> col = new ArrayList();
    
    b.在类/接口的方法中,具体类型就可以使用E来代替
    

    3.作用:

    泛型就是为了让代码的复用性更强,就可以不用实现重载操作
    

    集合和数组的区别:

    长度区别:
    	a.集合长度可变
    	b.数组长度不可变
    
    内容区别:
    	a.集合可以存储引用类型数据
    	b.数组可以存储基本数据类型,引用数据类型
    
    	c.一个集合中可以存储任意类型
    	d.数组只能存储统一类型
    

    JavaBean规范:

    1.成员变量私有化,提供一对get()/set()
    2.添加无参构造方法
    3.重写toString()
    4.重写equals()和hashCode()
    5.建议基本数据类型使用包装类
    
    cs
    下一篇:没有了