Java集合框架(常用类) JCF

为了实现某一目的或功能而预先设计好一系列封装好的具有继承关系或实现关系类的接口;

集合的由来:

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

管理集合类和接口; list ,set, map 3大类

collection:是所有集合中心的接口(装东西的中心)

collections:是操作集合的算法类

collection(三大阵营):

List:ArrayList, LinkedList, Vector(legacy) (面试),

Set:HashSet,

Map:HashMap,Hashtahle(面试),properties,

collection接口和Iterator接口:

集合框架中,分为两种API:

程序例:

1:List容器

public static voidmain(String[] args) {//TODO Auto-generated method stub//List---列表。//List特点:线性。即:有序,元素的放入顺序和元素的存储顺序保持一致。//表象上,List最大的特点就是有下标。//ArrayList就是作为一个数组的封装出现的,底层就是数组//LinkedList底层封装的是一个双向链表。//当需要做大量的查询动作的时候,使用ArrayList;//当需要做大量的增加删除动作(特别是往中间增删),使用LinkedList//面试中:ArrayList常常和Vector比较//泛型---用来控制集合只能操作某一种数据类型

LinkedList lst = new LinkedList();//增

lst.add(new StudentBean("zhang3",44,90));

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

lst.add(new StudentBean("lidaye",55,62));

lst.add(new StudentBean("zhoudama",60,84));//求长度

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);//加上泛型不需强转//遍历---将集合中的每个元素依次取出,做同样的操作//1、使用普通for循环进行遍历

for(int i = 0; i < lst.size(); i++){

StudentBean tmpStu=lst.get(i);

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

}//2、使用迭代器---Iterator完成遍历----是集合框架类Collection直接分支专用//特点是没有下标,从头到尾走一遍

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

StudentBean tmpStu=it.next();

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

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

for(StudentBean tmpStu : lst){

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

}//for-each还可以操作数组

int[] array = {12,13,14,15,16,17};for(inttmp : array){

tmp++;

System.out.println(tmp);

}

}

public static voidmain(String[] args) {//TODO Auto-generated method stub//Map---映射//Map的特点:键值对。键要求唯一,值可以重复//放入元素的顺序和存储顺序无关//常用子类:HashMap(主要用于集合操作)、Properteis(专用于操作属性文件)//面试中:HashMap常常和Hashtable进行比较

HashMap map = new HashMap();//增加元素

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

map.put("j34002", new StudentBean("li4",28,85));

map.put("j34003", new StudentBean("wang5",18,87));//得到长度

System.out.println(map.size());//修改元素

map.put("j34003", new StudentBean("zhao6",24,75));//删除元素---通过键去移除元素

map.remove("j34003");//获取指定的元素对象

StudentBean stu = map.get("j34003");//遍历Map//不能同时遍历键和值;只能分开遍历//遍历所有的键

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

for(String key : keySet){

System.out.println(key);

}//遍历所有的值

Collection allStus = map.values();//得到所有的值,思考为什么不返回List或其它集合类型?

for(StudentBean tmpStu : allStus){

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

}

}

public static voidmain(String[] args) {//Set---集//Set的特点---不能放置重复元素、无序。//表象上,Set没有下标//常用子类HashSet//HashSet如何判断两个元素是否重复呢?//1、调用equals方法得到两个对象比较为true//2、两个元素的hashcode值保持一致//只有这两个条件同时满足,Java才认为这是同一个对象//所以重写了equals方法一般也要重写hashcode方法,让equals返回true的对象//hashcode也能返回同样的整数值

HashSet set = newHashSet();//放入元素

set.add("hello");

set.add(newDate());

StudentBean stu0= new StudentBean("zhang3",18,80);

set.add(stu0);

set.add(200);

StudentBean stu1= new StudentBean("zhang3",18,80);

set.add(stu1);//放入元素的个数

System.out.println(set.size());

System.out.println(stu0.equals(stu1));

System.out.println(stu0.hashCode());

System.out.println(stu1.hashCode());//修改---没有修改方法//删除---只能根据对象进行删除,还是用的equals和hashCode来判断到底删除哪个对象

set.remove(new StudentBean("zhang3",18,80));//获取某个元素---无法获取某个指定的元素//遍历---将集合中的每个元素依次取出,做同样的操作//1、不支持普通for循环,没有下标//2、支持迭代器

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

Object obj=it.next();

System.out.println(obj);

}//3、支持for-each循环

for(Object obj : set){

System.out.println(obj);

}

}

public class StudentBean implements Comparable{privateString name;private intage;private intscore;publicStudentBean(){

}public StudentBean(String name, int age, intscore) {super();this.name =name;this.age =age;this.score =score;

}publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}public intgetAge() {returnage;

}public void setAge(intage) {this.age =age;

}public intgetScore() {returnscore;

}public void setScore(intscore) {this.score =score;

}

@Overridepublic booleanequals(Object obj) {//TODO Auto-generated method stub

if(obj instanceofStudentBean){

StudentBean stu=(StudentBean)obj;if(this.name.equals(stu.getName()) && this.age == stu.getAge() &&

this.score ==stu.getScore()){return true;

}

}return false;

}

@Overridepublic inthashCode() {//TODO Auto-generated method stub

int num = 0;if(this.name != null){char[] array = this.name.toCharArray();for(inta : array){

num+=a;

}

}

num+= this.age;

num+= this.score;returnnum;

}

@Overridepublic intcompareTo(StudentBean stu) {//TODO Auto-generated method stub//返回的正数、负数,依赖于根据比较规则两个元素的位置之差//if(this.age < stu.getAge()){//return -1;//}else if(this.age > stu.getAge()){//return 1;//}else{//return 0;//}

if(this.score >stu.getScore()){return -1;

}else if(this.score

}else{if(this.age >stu.getAge()){return 1;

}else if(this.age

}else{return 0;

}

}

}

@OverridepublicString toString() {//TODO Auto-generated method stub

return this.name + " " + this.age + " " + this.score;

}

}

public class IntegerComparator implements Comparator{

@Overridepublic intcompare(Integer o1, Integer o2) {//TODO Auto-generated method stub

if(o1 >o2){return -1;

}else if(o1

}return 0;

}

}

public class StudentComparator implements Comparator{

@Overridepublic intcompare(StudentBean o1, StudentBean o2) {//TODO Auto-generated method stub

if(o1.getScore() >o2.getScore()){return -1;

}else if(o1.getScore()

}return 0;

}

}

java jcf框架干啥的_Java集合框架(常用类) JCF相关推荐

  1. java jcf框架干啥的_Java集合框架体系JCF

    Java 集合框架体系作为Java 中十分重要的一环, 在我们的日常开发中扮演者十分重要的角色, 那么什么是Java集合框架体系呢? 在Java语言中,Java语言的设计者对常用的数据结构和算法做了一 ...

  2. Java哪些是线程安全的_Java集合中那些类是线程安全的

    线程安全类 在集合框架中,有些类是线程安全的,这些都是jdk1.1中的出现的.在jdk1.2之后,就出现许许多多非线程安全的类. 下面是这些线程安全的同步的类: vector:就比arraylist多 ...

  3. java集合框架介绍_Java集合框架全面介绍(一)

    Java平台提供了一个全新的集合框架."集合框架"主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型. Java 2集合框架图 集合接口:6个接口(短虚线表示),表示不 ...

  4. java集合框架容器 java框架层级 继承图结构 集合框架的抽象类 集合框架主要实现类...

    本文关键词: java集合框架  框架设计理念  容器 继承层级结构 继承图 集合框架中的抽象类  主要的实现类 实现类特性   集合框架分类 集合框架并发包 并发实现类 什么是容器? 由一个或多个确 ...

  5. 集合_java集合框架

    java集合框架图 简化图: Java平台提供了一个全新的集合框架."集合框架"主要由一组用来操作对象的接口组成. 不同接口描述一组不同数据类型.      1.Java 2集合框 ...

  6. Educoder–Java高级特性(第二章)- 集合框架【笔记+参考代码】

    Educoder–Java高级特性(第二章)- 集合框架[笔记+参考代码] 第一关 编程要求 请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,创建ArrayList集 ...

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

    1.集合框架 a.框架:为了实现某一目的或功能,而预先提供的一系列封装好的.具有继承或实现关系的类与集合 b.集合:①定义:Java中对一些数据结构和算法进行封装,即封装(集合也是一种对象) ②特点: ...

  8. java jcf查看_JAVA 集合框架(JCF)

    网络上搜索java集合框架各种理论知识,图谱都有,只要你认真看就会有收获,博主是一个坚决不随意"造轮子"的新人,所以我的这篇文章就总结一下我所学到的JCF. 首先谈一下我的学习路径 ...

  9. java jcf查看_Java 集合系列之一:JCF集合框架概述

    容器,就是可以容纳其他Java对象的对象.Java Collections Framework(JCF)为Java开发者提供了通用的容器 java集合主要划分为四个部分: Collection(Lis ...

最新文章

  1. tomcat5.5.9+sql2000数据库连接池配置
  2. 分享一个ASP.NET 文件压缩解压类 C#
  3. 2020-11-10(安卓如何传递数据)
  4. Order附近语法错误
  5. 【转】ABP源码分析三十六:ABP.Web.Api
  6. Python SimpleITK实现医学图像增强算法
  7. linux修改默认python版本_Linux 升级 Python 并修改默认版本
  8. java 发送带basic认证的http post请求实例代码_图解HTTP学习笔记(八)—确认访问用户身份的认证...
  9. Java——枚举:优雅而干净的enum
  10. UNIX环境高级编程——线程同步之条件变量以及属性
  11. 计算机专业中专自我鉴定范文,计算机专业中专生自我鉴定范文
  12. 雾霾天出行,如何精确避开“雷区”?2016 SODA数据侠十强
  13. ios13.7 iPhone/iPad Location-cleaned 驱动下载
  14. 芯烨Xprinter XP-F260H 打印机驱动
  15. arduino水温度传感器数字显示_温度传感器 LM35
  16. Deep Feedforward Networks(3)
  17. php 苹果手机传图,苹果手机照片怎么传到另一个手机的方法【图文教程】
  18. 智慧地产-售楼中心 3D 沙盘可视化
  19. 专注网格剖分 - TetGen,NETGEN,Steller
  20. 生活如此美好 我却如此暴躁

热门文章

  1. 【19调剂】哈尔滨工程大学计算机学院物联网与移动计算招收调剂学生
  2. 2019年二建水利答案1
  3. python的元类与类继承的区别
  4. GitHub创建删除分支
  5. AI竞赛服务平台—— FlyAI
  6. js-xlsx基本使用(vue)
  7. HP EliteBook 开启虚拟化
  8. (7)风色从零单排《C++ Primer》 string
  9. 新型碎石破碎设备,鄂破机首居第一
  10. 质量好的自行车品牌有哪些辐轮王土拨鼠全球顶级自行车品牌排行榜