集合框架

集合框架

Student[] st=new student[5];(引用数据类型数组)
St[0]=new student(“张三”,23);-----------创建一个学生对象,存储在数组第一个位置(st[0],代表一个对象引用)
数组和集合的区别

  1. 数组既可以存基础数据类型,也可以存储引用数据类型。基础存的是值,引用存的是地址。
    集合只能存引用数据类型,也可存引用,但存储是自动装箱成对象。
  2. 数组长度是固定的,不能自动增长;
    集合的长度是可变的,根据元素的增加而增长。
    数组集合什么时候用;
    元素个数固定的用数组;
    元素个数不固定用集合
Collection(单列集合接口)

List有序(存取数据顺序一致) set(存和取顺序不一致),无索引,不可重复
有索引,可重复
接口不能被实例化,可以父类引用指向子类对象;

Collection c=new arrayList();
Boolean b1 =c.add(“abc”);-----------可放所有类型的数据,返回值类型为boolean;
Boolean b1 =c.add(true);
Boolean b1 =c.add(100);
Boolean b1 =c.add(new student(“张三”,23));   object obj=new student();
add方法list集合返回true,list可以重复;   student s=(student)arr[i];向下转型;
        Set 方法重复是false;
Arraylist的父类重写了tostring方法
C.remove(“b”);删除制定元素
C.clear(); 清空集合;
C.contains(“b”); 判断是否包含;
C.isempty()判断是否为空;
C.size()获取元素个数;

Object[] arr=c.toarray();集合转数组;
C1.addall(c2)-------c2添加到c!;[a,b,a,b]
C1.add(c2)-------[a,b,[a,b]]将c2看成一个整体;
C1.removeall(c2)-------删除交集;
c1.containsall(c2);----判断调用的集合是否包含传入的集合;
C1.retainall(c2);----------取交集看c1是否发生改变,改变为true;
Add,remove,contain,retain,.....返回值是boolean;

Iterator(迭代)
Iterator it=c.iterator();        -----------获取迭代器;
Boolean b1=it.hasnext();-------------判断集合中是否有元素,有为true;
Object obj1=it.next();-------------获取元素;
迭代器原理:对集合进行遍历,每一个集合的存储结构不同,每一个集合的存取不同,那么每一个类中定义hasnext(),next()方法,这样会让程序过于臃肿,迭代器方法向上抽取接口,然后在每个类内部定义自己的迭代方式。好处:规定了集合体系遍历方式的hasnext和next,第二代码底层实现,使用者不需要了解怎么实现的

List  
List ls=new arraylist()’
List.add(“a”);
List.add(1,”b”);-----------存储是出现不存在索引,索引越界异常。Index<=siez.
Object obj=List.remove(1);----通过索引删除元素(删除不会自动装箱)
Object obj=List.get(0)--------根据索引获取对象。
通过索引遍历
List.set(1,”z”)---------指定位置元素修改。
For(int i;i<list.size();i++)
Student s=(student)list.get(i);


Listinteror ls=new   listerinteror();---------在迭代的过程中可以添加
While(list.hasnext){
String s =(string)ls.next();
If (“world”.equals(str)){
ls.add(“”)
}


Vector(淘汰)线程安全,速度慢
Vector v=new vector();
v.addelement(“a”)----------添加
Enumeration en=v.elements();-----------获取枚举
While(en.hasmoreelements()){-------------判断是否有元素
Syso(en.nextelement())-------------------获取元素
}

集合框架
数组实现:查询修改快,增删慢
链表实现:查询修改慢,增删快
Vecor
线程安全,效率低
ArrayList 线程不安全,效率高
共同点:数组实现
Arraylist:底层数组,查询修改快
Linklist:链表结构,增删快
共同点:线程不安全的

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值