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
