java jcf框架干啥的_Java 之 集合框架(JCF)

1.集合框架

a.框架:为了实现某一目的或功能,而预先提供的一系列封装好的、具有继承或实现关系的类与集合

b.集合:①定义:Java中对一些数据结构和算法进行封装,即封装(集合也是一种对象)

②特点:元素类型可以不同,集合长度可变,空间不固定

c.集合框架:提供了管理集合的接口和类

2.Collection 与 Collections

a.Collection:是一个接口,装东西的集合接口 (核心接口)

b.Collections:是一个算法类,操作即可的算法类

3.Collection

Collection(核心接口):a.List(列表):①ArrayList

②LinkedList

b.Set(集):HashSet

c.Map(映射):①HashMap

②Properties

4.List——列表

a.特点:①线性(有序,元素的放入顺序和元素的存储顺序保持一致)

②表现上,List最大的特点就是有下标

b. ArrayList:就是作为一个数组的封装出现的,底层就是数组

c. LinkedList:底层封装的是一个双向链表

d.应用:①当需要做大量的查询动作的时候,使用ArrayList

②当需要做大量的增加删除动作(特别是往中间增删),使用LinkedList

e.方法:①声明:

LinkedList lst = new LinkedList();

注:泛型:用来控制集合只能操作某一种数据类型<>

②增添:

lst.add(" ");

lst.add(newDate());

lst.add(new StudentBean("zhao4",32,76));

lst.add(100);

③长度:

int size = lst.size();

④修改:

lst.set(0, new StudentBean("zhang3feng",102,45));

⑤删除:

lst.remove(0);

⑥获取某个元素:

StudentBean stu = (StudentBean)lst.get(1);

StudentBean stu= lst.get(1);    //加上泛型不需强转

⑦遍历:

方法一:使用普通for循环

方法二:使用迭代器---Iterator完成遍历----是集合框架类Collection直接分支专用(特点:没有下标,从头到尾走一遍)

Iterator it =lst.iterator();while(it.hasNext()){

StudentBean tmpStu=it.next();

System.out.println(tmpStu.getName());

}

方法三:for-each循环:底层封装的就是迭代器,但语法更简单,还可以操作数组

for(StudentBean tmpStu : lst){

System.out.println(tmpStu.getName());

}

5.Set——集

a.特点:①不能放置重复元素、无序

②表象上,Set没有下标

b.HashSet 的不重复性判断:

①调用equals方法得到两个对象比较为true

②两个元素的hashcode值保持一致

c.方法:

①增添:

set.add("hello");

set.add(newDate());

set.add(new StudentBean("zhang3",18,80));

set.add(200);

②长度:

int size = set.size();

③删除:只能根据对象进行删除,还是用的equals和hashCode来判断到底删除哪个对象

set.remove(new StudentBean("zhang3",18,80));

④修改(没有修改方法)

⑤遍历:

1.不支持普通for循环

2.支持迭代器

3.支持for-each

6.Map——映射

a.特点:①键值对。键要求唯一,值可以重复

②放入元素的顺序和存储顺序无关

b.常用子类:HashMap(主要用于集合操作)、Properteis(专用于操作属性文件)

c.方法:

①声明:

HashMap map = new HashMap();

②增添:

map.put("j34001", new StudentBean("zhang3",18,80));

③长度:

int size = set.size();

④修改:

map.put("j34001", new StudentBean("zhao6",24,75));

⑤删除:

map.remove("j34003"); //通过键去移除元素

⑥获取指定元素对象:

StudentBean stu = map.get("j34003");

⑦遍历:不能同时遍历键和值,只能分开遍历

遍历键:

Set keySet = map.keySet(); //得到所有的键,装入一个Set集合中,返回给调用者

for(String key : keySet){

System.out.println(key);

}

遍历值:

Collection allStus = map.values(); //得到所有的值,装入一个Collection集合中,返回给调用者

for(StudentBean tmpStu : allStus){

System.out.println(tmpStu.getName());

}

7.Collections工具类

a.Collections 与 Arrays:

①Collections:操作集合

②Arrays:操作数组

b.方法:

System.out.println(Collections.max(lst)); //求最大

System.out.println(Collections.min(lst));//求最小

Collections.sort(lst);//排序(只能传List)自带内部比较器

Collections.sort(lst,new StudentComparator()); //排序 提供外部比较器

Collections.reverse(lst);//反转

Collections.shuffle(lst);//混排--随机打乱排序

8.比较器:

a.Comparable:内部比较器

b.Comparator:外部比较器

c.注意:Comparable 中的 ComparaTo()方法中,返回的正数、负数,依赖于根据比较规则两个元素的位置之差

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值