• java 集合 ArrayList


    变量--容器 存储一个元素

    数组--容器

      一组具有某种特性的数据存放在一起;

      存储一组元素(数据类型一致) 长度固定

    自己定义了Box(ArrayBox LinkedBox)--容器

      存储一组元素 长度可变

    集合--容器 是指具有某种特定性质的具体或抽象的对象汇总而成的集体;

       是用来存储一组元素 长度可变

            集合java.util

    Collection                  Map

    存储的都是value             存储的是以key-value形式存在

    List  Queue    Set  

    有序可重复     无序无重复      key无序无重复  value无序可重复

    *ArrayList     HashSet

    Vector       TreeSet

    Stack(LIFO)

    *LinkedList

    add()        add()

    remove()      remove()

    set()        

    get()        iterator()

    size()        size()

    序:顺序 添加进去的元素 取得元素的顺序一致 注意指的不适集合自己的顺序

    重复:两个对象元素一致

    ArrayList、Vector区别-->StringBuilder  StringBuffer

    List集合

    1.ArrayList  2.LinkedList(双向链表)  3.Vector   4.Stack(一个口,先进后出)

    1.ArrayList

      所属的包 java.util

      如何创建对象

      无参数构造方法  带默认空间的构造方法  带collection参数的构造方法

      常用方法--小容器(CURD 增删改查)

     增删改查 add() remove() set() get() size()

     addAll  removeAll  retainAll  indexOf  lastIndexOf  contains()  subList() 

    isEmpty()  clear()  ensureCapacity()  iterator()

    toArray()  trimToSzie() 

      由于arrayList底层是一个Object[] 什么类型都可以存进去

      取出来的时候多态的效果 需要自己造型 显得用起来非常的麻烦

      JDK1.5之后-->泛型

      用来规定数据类型的,定义的时候用一个符号代替某种类型

      在使用的时候用具体的数据类型 将定义的那个符号替换掉

      ArrayList特点适合遍历轮询  不适合插入删除;

    泛型可以用在哪里?(not 造型)

    在类或接口描述的时候 可以使用某种符号来表示一个未知的类型

    在类型使用的时候 需要一个具体类型来代替

    注意:泛型需要使用引用数据类型来代替

    1.泛型类

      类定义的时候描述某种数据类型 集合的使用就是这样

    2.泛型接口

      与泛型类的使用基本一致 子类实现接口时必须添加泛型

    3.泛型方法

      方法调用时传参数;方法的泛型与类无关 带有泛型的方法可以不放在带有泛型的类中;

    4.高级泛型 规范边界 Extends super

    import java.util.*;
    public class Test0519{
    	public static void main(String[] args){
    		ArrayList<String> a=new ArrayList<String>();
    		a.add("abc");
    		a.add("10");
    		a.add("true");
    		a.add("3.4");
    		for(int i=0;i<a.size();i++){
    			System.out.println(a.get(i));
    		}//返回集合a中每个元素
    		System.out.println(a);//显示a中元素;重写了toString;
    		System.out.println(a.size());//显示长度;
    		int l=a.size();//a总长度;//每删除一个索引数据,则a长度-1;与数组不同,数组长度不变;
    		for(int i=0;i<l;i++){
    			System.out.println("即将删除元素是:"+a.get(0)+";此时a总长度为:"+a.size());
    			a.remove(0);			
    		}
    		System.out.println(a);//显示a中元素;
    		System.out.println(a.size());//全部删除后,a中元素;
    	}
    }
    

      

    import java.util.*;
    public class Test0519{
    	public static void main(String[] args){
    		ArrayList<Integer> a=new ArrayList<Integer>();
    		a.add(10);
    		a.add(2);
    		a.add(3);
    		ArrayList<Integer> b=new ArrayList<>();
    		b.add(100);
    		b.add(200);
    		//b中所有元素添加到a中
    		//a.addAll(b);//[10,2,3,100,200]并集
    		a.addAll(1,b);//[10,100,200,2,3] 插入
    		System.out.println(a);
    		//a.clear();//[]
    		boolean ise=a.contains(200);//包含
    		System.out.println(ise);
    		System.out.println(a);
    		int x=a.indexOf(2);//该数第一个索引号;
    		System.out.println(x);
    		int y=a.lastIndexOf(2);//该数最后一个索引号;
    		System.out.println(y);
    		System.out.println(a.isEmpty());//空?
    		a.remove(0);//删除0号索引的值;
    		System.out.println(a);
    		a.remove(new Integer(2));
    		System.out.println(a);
    		a.retainAll(b);//交集
    		System.out.println(a);
    		System.out.println(b);
    		a.set(1,300);//改
    		System.out.println("set:"+a);
    		a.removeAll(b);//差集
    		System.out.println("ab差集"+a);		
    		//集合交集,并集,差集
    		System.out.println("a长度:"+a.size());
    		System.out.println("b截取:"+b.subList(0,1));
    		Integer[] mm=new Integer[a.size()];
    		a.toArray(mm);//集合变成数组;
    		System.out.println(mm.length);
    		a.trimToSize();//变成有效元素个数那么长
    		System.out.println(a);
    	}
    }
    

      

     泛型不能使用基本类型--如果想要使用基本类型 需要使用其对应的包装类

    总结

    集合有很多类 非常庞大的一个系统

    1.了解集合的每一个具体的分支 各种特点;

    2.常用的集合的方法;

    3.每一个集合的特点;

    4.集合底层的原理;

      

      

     

      

    越努力,越幸运!!! good good study,day day up!!!
  • 相关阅读:
    JavaScript相关知识
    JQ定义
    将博客搬至CSDN
    javascript权威指南笔记(第6章 对象)
    高性能javascript(第一章 加载和运行)
    javascript高级程序设计笔记(第4章 变量、作用域和内存问题)
    浏览器加载渲染HTML、DOM、CSS、 javascript、image、flash、iframe、src属性等资源的顺序总结
    mac 快捷键
    javascript的执行顺序
    javascript高级程序设计笔记(第1章~第3章)
  • 原文地址:https://www.cnblogs.com/canglongdao/p/12919857.html
Copyright © 2020-2023  润新知