JCF集合框架理解

JCF集合框架理解JCF 集合框架所谓的集合 就是可以往里面放批量元素针对这些元素执行执行单独或统一的操作框架 指为了实现某个目标或是某个功能 而预先设计好的一系列具有继承或实现关系的类与接口 使用者可以直接操作这些类与接口 而不必关注底层的实现 Collection 是一个接口 是容器类的根接口 是用来装元素的 在 Collection 中有衍生出 3 个子集合 List Set MapList 接口 List

JCF集合框架

List接口

ArrayList let = new ArrayList() 

2、增加对象

let.add(对象名) //这里的对象名,是你要放入的对象的名字 let.add(50) //注意这里放置的不是int类型变量,而是放置的事包装类Integer对象 let.add(5,"hello") //在指定下标放入指定对象,但是下标不能超过当前的元素个数,否则报IndexOutOfBoundsException 

3、删除对象

let.remove(下标) //通过下标进行删除 let.remobr(对象名) //通过对象名进行删除,这个时候要注意,如果你要删除的对象是int数据类型,那么必须使用它的Integer对象,否则int会被作为下标从而调用到上面的通过下标进行删除的重载remove方法。 实例:lst。remobr(new Integer(50)) 

4、修改

lst.set(下标,改的数据); 
Object obj = lst.get(下标) 

6、获取容器中元素的个数

lst.size() 
for(int i = 0;i < lst.size();i++){ } 
Iterator it = new lterator //先通过容器获取到该容器的迭代器 while(it.hasNext()){ //hasNext 方法是判断还有没有下一个元素 Object tmp = it.next; //next方法是取出下一个元素 system.out.println(tep) // 取出来以后操作元素 
for(Object tmp :lst){ //Object tmp临时变量、 lst代表容器 system.out.println(tmp)} //我要进行的操作 
ArrayList<string> str = new ArrayList<string>()//表示这个集合只能放这个类型 ArrayList<string> str = new ArrayList<>()//JDK1.7以后可以后面类型可以不用直接输入 

Set

 HashSet<String> strSet = new HashSet<>(); 

2、增

 strSet.add("Hello") strSet.add("JAVA") strSet.add("JAVA") //不能存放重复元素; 
strSet.remove("JAVA") strSet.remove("小吧") //如果被删元素不存在,不会报异常 

4、改—-不能修改指定元素

5、查—-不能获取指定元素

6、获取容器中的元素个数

strSet.size() 
 Iterator it = new lterator //先通过容器获取到该容器的迭代器 while(it.hasNext()){ //hasNext 方法是判断还有没有下一个元素 Object tmp = it.next; //next方法是取出下一个元素 system.out.println(tep) // 取出来以后操作元素 
for(Object tmp :strSet){ //Object tmp临时变量、 lst代表容器 system.out.println(tmp)} //我要进行的操作 

Map

常用类:HashMap

1、产生容器对象

 HashMap<K,V> //K表示这个容器内只能存放的类型,V 表示只能那种类型的对象 HashMap<string,StudenBean> stuMap = new HashMao<>(); 
 stuMap.put("杨凯",new StudentBean(”杨凯“,24)); stuMap.put("老段",new StudentBean(”老段“,28)); 
 stuMap.remove(Key) 
 stuMap.put("杨凯",new StudentBean(”杨凯“,24)); 
 stuMap.get(Key) 

6、获取元素个数

 stuMap.size() 
 Set<String> keySet = stuMap.ketSet(); //得到所有的Key,放在Set集合当中 for(String key:keySet){ //遍历输出Set集合 String stu1 = String key system.out.prinln(stu1) } 

Properties

1、Propeties作为容器API操作

产生一个容器对象

 Propeties props = new Propeties(); 

往容器中放数据

Propeties.setProperty("j170",“j170--1000”); 

删除数据

Props.remove("j175") 

修改数据

 Props.setProperty("j171",“j171--1200”) //要求键在容器中存在。如果不存在返回null 

获取键值

String value = props.getProperty("j178"); //获取数据仍然是通过键获取值 

获取元素个数

 props.size() 

遍历—-仍然两种,遍历所有的键 和 遍历所有的值

Set keySet = props.keySet(); //注意Set不能加泛型 Collection values = props.values(); 
 myProps.keySet(); //获取“=”前面的部分 myprops.values(); //获取“=”后面的部分 

2-1、读文件

 Properties myProps = new Properties(); //创建一个Properties容器对象 try { myProps.load(new FileInputStream("data/userinfo.properties")); //读取在什么位置的文件 } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } Collection stuValues = myProps.values(); //获取文件元素,以String 类型保存Collection集合里面 for(Object obj : stuValues) { //遍历输出Collection集合 String tmpValue = (String)obj; //强转obj为String System.out.println(tmpValue); } 

2-2、写文件

 myProps.setProperty("tom", "tom-25"); //修改元素的Key和值 try { myProps.store(new FileOutputStream("data/userinfo.properties"), null); //写入文件的位置 } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } 

Collections 工具类

1、最大值

 ArrayList<Integer> list = new ArrayList<>; list.add(99); list.add(80); list.add(60) Integer maxInteger = Collections.max(list) //用Collections中的max方法,传入list集合,找出最大的值放入maxInteger 

2、最小值

 HashSet<string> set = new HashSet<>() set.add("hello"); set.add("zhang"); set.add("wang"); string minStr = Collections.min(set) //用Collections中的min方法,传入set集合,找出最小的值放入minStr 

3、排序—所有的排序只支持List集合,因为只有该集合踩有下标,才是有序的线性集合

comparable接口:又叫内部比较器

compareTo方法:比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。

public int compareTo(StudentBean o) { // TODO Auto-generated method stub /* * 按分数从高到底排列,如果分数一样的,按年龄从小到大排列 * * 备注:compareTo方法返回正数还是负数,依赖的是当前对象根据规则应该排在指定对象的后面还是前面 即根据规则当前对象的下标 减去 传入对象的 * 下标。用这种方式来理解这个算法,最佳! */ if(this.score > o.getScore()) { return -1; }else if(this.score < o.getScore()) { return 1; }else { if(this.age < o.getAge()) { return -1; }else if(this.age > o.getAge()) { return 1; }else { return 0; } } 

自定义类如果想放在集合中,可以利用Collertions中的Sort方法

Comparator–外部比较器

当我们需要在这个类的外部进行比较时,而比较规则需要我们自己在外部重新制定时,这时候制定的比较器,我们又叫外部比较器,当然类要实现comparable接口

compare(T o1,T o2)比较用来排序的两个参数。根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数。

/* * 这是一个外部的Integer比较器,比较规则是从大到小降序。 * 因为Integer自身带的Comparable比较器实现的是从小到大的规则, * 如果要一次从大到小降序排列,只能自己实现一个外部比较器。 */ public class IntegerComparator implements Comparator<Integer>{ /* * 规则为降序排列 * * 备注:compare方法返回正数还是负数,依赖的是第一个参数对象 根据规则应该排在 第二个参数对象的后面还是前面 * 即根据规则第一个参数对象的下标 减去 第二个参数对象的下标 是正数、负数还是零。用这种方式来理解这个算法,最佳! */ @Override public int compare(Integer o1, Integer o2) { // TODO Auto-generated method stub if(o1 > o2) { return -1; }else if(o1 < o2) { return 1; } return 0; } } 

未完待续……………………

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230998.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • HTML, CSS学习笔记(完整版)[通俗易懂]

    HTML, CSS学习笔记(完整版)

    2022年1月31日
    38
  • https httppost ssl单向验证,json格式传输 java案例

    https httppost ssl单向验证,json格式传输 java案例https httppost ssl单向验证,json格式传输 java案例

    2022年4月23日
    87
  • 演练 制作百度音乐标签页面 0929

    演练 制作百度音乐标签页面 0929演练制作百度音乐标签页面0929期望效果文字素材全部歌手AAFineFrenzyAirSupplyAkonAlanSilvestriApink安又琪安在旭安室奈美惠BBabyfaceBackstreet..BandariBarbraStreisandBasshunterBeeGees北京天使合唱团宝儿宝宝的音乐花园巴哈尔古丽巴桑布仁巴雅尔CChrisGarneau

    2022年7月25日
    9
  • Qt框架简介

    Qt框架简介这里的Qt不是指Qt语音平台,而是指GUI框架。截止至2019年12月,Qt的最新版本是5.14.0,但仍有很多资料是基于Qt4,为了避免大家误入歧途,所以写了这篇文章。Qt一开始是由奇趣公司开发的,后来被Nokia收购了,然后再被Digia收购了。所以有的人会误以为Qt就是为了塞班系统而生,是个落伍的产物。但是很多嵌入式软件、桌面工具都是用Qt来开发的,包括Quartus和Caden…

    2022年5月16日
    988
  • Mac virtualbox 共享文件夹

    Mac virtualbox 共享文件夹1.启动virtualbox,选中虚拟机,点击设置,点击共享文件夹;2.点击右侧按钮添加共享文件夹;3.选择共享文件夹路径(mac路径),自动挂载,固定分配两个勾选。4.VBoxGuestAdditions_5.0.0.iso下载地址http://download.virtualbox.org/virtualbox/5.0.0/5.启动VirtualBox,启动win7虚拟机,…

    2025年7月14日
    8
  • G1垃圾收集器详解

    G1垃圾收集器详解G1垃圾收集器GC收集器的三个考量指标:占用的内存(Capacity)延迟(Latency)吞吐量(Throughput)随着硬件的成本越来越低,机器的内存也越来越大,GC收集器占用的内存基本上可以容忍。而吞吐量可以通过集群(增加机器)来解决。随着JVM中内存的增大,STW的时间成为JVM急迫解决的问题,如果还是按照传统的分代模型,使用传统的垃圾收集器,那么STW的时间将会越来越长。在传统的垃圾收集器中,STW的时间是无法预测的,有没有一种办法,能够首先定义一个停顿时间,然后反向推算收集内

    2022年5月1日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号