java基础学习笔记之集合.doc_第1页
java基础学习笔记之集合.doc_第2页
java基础学习笔记之集合.doc_第3页
java基础学习笔记之集合.doc_第4页
java基础学习笔记之集合.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

java基础学习笔记之集合集合(集合中的数据默认都是object类型,最好使用泛型来指定数据类型)List:常见的有:ArrayList、vecdtor(旧的类,JDK1.2之后又升级的)、LinkedListMap:常见的有:HashMap、Hashtable、TreeMapSet:常见的有:HashSet、TreeSetList:List 中允许有内容重复的元素,因为在list中的数据是按照下标来排序的,下标不可能相同ArrayList,实现了list接口,性能高,采用异步处理,但是线程不安全:public static void main(String args) / TODO Auto-generated method stubList list=new ArrayList();list.add(a);list.add(b);list.add(c);list.add(a);for(String s:list)System.out.println(s);Linkedlist链表集合,可以模拟链表、堆栈public static void main(String args) / TODO Auto-generated method stubLinkedList link=new LinkedList();link.add(aa);link.add(bb);link.add(cc);link.add(dd);link.add(ee);int len=link.size();/先将link的长度取出来for(int i=0;ilen;i+)System.out.println(link.poll();Vector是旧的类,性能低,采用同步处理,线程安全,List vet=new Vector();vet.add(a);vet.add(b);vet.add(1, bb);/将bb加到下标为1的元素前面,即加到b前vet.add(c);vet.add(hello);vet.add(world);vet.remove(0);/删除制定下标的元素vet.remove(c);/删除制定的元素for(int i=0;ivet.size();i+)System.out.println(vet.get(i);Map也可以使用泛型,map是根据key来获取value的,其中key不可以相同,如果相同,后一个value值将覆盖前一个value值,如下:Map map=new HashMap();map.put(name, wei);map.put(age, 21);map.put(sex, female);System.out.println(map.get(name);/根据key来取value的值/如果要遍历,通过keySet()这个方法获取所有key的集合Set keys=map.keySet();for(String k:keys)System.out.println(k+ +map.get(k);/用key来取value值注意:map里有自己的一套算法,所以在输出遍历的结果时,不一定是按照我们添加元素的顺序排列出来的Hashtable和HashMap 的区别:hashtable是同步处理,性能较低;hashmap是异步处理,性能较高;hashmap可以设置null值,hashtable不能设置null值,否则会出现空指向异常Map hm=new HashMap();hm.put(name, aa);hm.put(age, null);System.out.println(hm);输出的结果为:age=null, name=aaMap htm=new Hashtable();htm.put(name, aa);htm.put(age, null);System.out.println(htm);输出结果报错:Exception in thread main java.lang.NullPointerException 空指针异常属性操作类:Properties是专门操作属性文件的类对属性的操作:public static void main(String args) Properties ppt=new Properties();ppt.setProperty(title, Java);ppt.setProperty(author, xiaoyan);ppt.setProperty(publisher, qinghua);ppt.setProperty(time, 1991-01-01);System.out.println(可以查到的属性:+ppt.getProperty(title);System.out.println(查不到的属性:+ppt.getProperty(name);/查不到的属性,返回默认值System.out.println(查不到的属性:+ppt.getProperty(age,没有此属性的记录);/将属性写入普通文件中,并从文件中将内容读取出来,/将内容向普通文件中保存Properties pro=new Properties();pro.setProperty(title, Java);pro.setProperty(author, xiaoyan);pro.setProperty(publisher, qinghua);File file=new File(e:+File.separator+e.txt);OutputStream out=new FileOutputStream(file);/pro.store(new FileOutputStream(new File(e:+File.separator+e.txt), Area Info);pro.store(out, Area Info);/从文件中将内容读出Properties pro1=new Properties();InputStream input=new FileInputStream(file);pro1.load(input);System.out.println(pro1.getProperty(title);System.out.println(pro1.getProperty(author);System.out.println(pro1.getProperty(publisher);/先保存到xml文件中,在将其读出来/将内容保存到XML中Properties ppt1=new Properties();File file=new File(e:+File.separator+e.txt);OutputStream out=new FileOutputStream(file);ppt1.setProperty(title, Java);ppt1.setProperty(author, xiaoyan);ppt1.setProperty(publisher, qinghua);ppt1.storeToXML(out, Area XML);System.out.println(=);/将内容从XML文件中读取出来Properties ppt2=new Properties();File file=new File(e:+File.separator+e.txt);InputStream input=new FileInputStream(file);ppt2.loadFromXML(input);System.out.println(ppt2.getProperty(title);System.out.println(ppt2.getProperty(author);System.out.println(ppt2.getProperty(publisher);Set也可以使用泛型,set中没有下标,也没有key,所以set中的数据不能重复,如果重复,就会被覆盖,但是放进去的数据肯定会被读出来,HashSet如下:Set set=new HashSet();set.add(111);set.add(123);set.add(123);set.add(234);for(String str:set)System.out.println(str); 结果如下: 123111234注意:Set和map一样,内部有自己的算法,输出的结果顺序会有所不同排序的子类:TreeSetSet ts=new TreeSet();ts.add(W);ts.add(R);ts.add(D);ts.add(A);for(String t:ts)System.out.println(t);用TreeSet对对象进行排序public class Person implements Comparableprivate String name;private int age;public Person(String name,int age) =name;this.age=age;public String getName() return name;public void setName(String name) = name;public int getAge() return age;public void setAge(int age) this.age = age;public String toString()return 姓名:+ + 年龄:+this.age;public int compareTo(Person per) if(this.ageper.age )return 1;else if(this.ageper.age )return -1;elsereturn pareTo( );public class Person2 public static void main(String args) Set set=new TreeSet();set.add(new Person(王灵,22);set.add(new Person(王真,23);set.add(new Person(箫剑,22);set.add(new Person(小红帽,21);for(Person p:set)System.out.println(p);注意:TreeSet的排序实现,如果是集合中对象是自定义的或者说其他系统定义的类没有实现Comparable接口,则不能实现TreeSet的排序,会报类型转换(转向Comparable接口)错误。换句话说要添加到TreeSet集合中的对象的类型必须实现了Comparable接口。不过TreeSet的集合因为借用了Comparable接口,同时可以去除重复值,而HashSet虽然是Set接口子类,但是对于没有复写Object的equals和hashCode方法的对象,加入了HashSet集合中也是不能去掉重复值的。集合输出使用迭代Iterator记住:只要碰到了集合,就想都不想的使用iterator 来进行输出,其操纵原理是:判断有没有下一个元素,如果有,就直接输出Collection all=new ArrayList();all.add(E);all.add(D);all.add(S);all.add(F);all.add(A);Iterator ite=all.iterator();while(ite.hasNext()String str=ite.next();System.out.println(str);这是iterator最常用的输出方式,也是一种标准书写方式分析equals、hashCode与内存泄露Equals的作用:比较两个对象的地址值是否相等向Set集合中放入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论