集合知识点

来源:互联网 发布:莆田电视台 网络直播 编辑:程序博客网 时间:2024/06/05 00:58

一、了解集合框架的结构
Collection接口:Set接口、List接口;List接口:LinkedList类、Vector类、ArrayList类;Set接口:HashSet类、LinkedHashSet类、TreeSet类。
Map接口:HashMap类、LinkedHashMap类、Hashtable类、TreeMap类。
总结:继而明白之间的继承关系。
二、Object类
1.toString方法的重写。该方法是Object中的重要方法之一,该方法将返回此对象的字符串表示,以便在实际运行或调试代码时可以获取字符串的表示的对象状态信息。
2.equals方法。
public boolean equals(Object obj){     return (this ==obj);}
3.hashCode方法
在管理很多对象的时候如果采用数组这一类的线性表,在进行随机查找时效率将非常差,为了解决这个所以一般会采用到哈希存储的方式。
使用哈希时被存储的对象需要提供一个哈希码,一般是一个整数值。hashcode方法的功能就是用来提供所在对象的哈希码,根据对象的不同
哈希码的值有所不同。一般每定义一个新的类,都要重写一个适合的hashCode方法。
4.equals和hashCode方法的重写。
4.1equals满足一下规定:自反性、对称性、传递性、一致性。
4.2hashCode方法。原则:如果根据equals方法的比较,两个对象是等价的,那么在两个对象中各自调用hashCode方法必须产生相同的整数结果4.3满足的关系
条件结果
a.equals(b)==true        必须a.hashCode()==b.hashCode()
a.hashCode()==b.hashCode()对equals无法要求
a.equals(b)==flase对hashCode()无法要求
a.hashCode()!==b.hashCode() a.equals(b)==flase
注意实际开发中要求,要么同时重写equals与hashCode方法,要么同时都不写,不允许值重写一个。
二、Oedered与Sorted的接口
1.Ordered的排序(按照某种具体情况决定排序的顺序)。属于的有:ArrayList类、LinkedeList类、List类、LinkedHashSet类。
2.Sorted的排序(按照天然的顺序进行排序)。属于的有:TreeSet类、TreeMap类、SortedSet接口、SortedMap接口。
三、列表
1.List接口。该接口继承自Collection接口,代表列表的功能(角色),其中的元素可以按索引的顺序访问,所以也可以称为有索引的collection。
方法:boolean add(Object o);//增加 contians(Object o)//查找,判断是否有这个函数。get(int index);//获取。
2.数组实现列表。ArrayList类。
其是List接口最常用的实现之一,可以向其中添加null值在内的所有对象引用型的元素,甚至该类对象引用自己也可以作为其中的元素,这样便可以方便地搭建一个树状结构的结合。
代码演示:
import java.tuil.*;public class ArraylistDemo{public static void main(String[] args){//创建列表ArrayList的对象ArrayList a1=new ArrayList();//初始化ArrayList对象的元素for(int i=0;i<50;i+){a1.add(String.valueOf(i));}//对ArrayList进行操作for(int i=60;i<=75;i++){a1.set(i-45,String.valueOf(i));}System.out.println(a1);//取出制定索引的元素并进行处理Object o=a1.get(22);String s=(String)o;System.out.println(s.length());}}
四、集合
1.Set接口也继承了collection接口。Set的特点:Set不允许有重复的元素,同时Set中的元素没有顺序。
2.set的采用方法:add()、isEmpty()、remove()、size()、contains()、Object[] toArray //转化为数组。
3.HashSet类。元素在存储不保证任何的顺序。实际上,HashSet存储对象引用时是按照哈希策略来实现的。同时,可以向HashSet中添加null值,但只能添加一次。
代码演示:
import java.tuil.*;public class SetDemo{public static void main(String[] args){//创建HashSet对象HashSet hs=new HashSet();//向HashSet添加内容hs.add(String.valueOf(5));hs.add(String.valueOf(1));hs.add(String.valueOf(2));hs.add(String.valueOf(3));hs.add(String.valueOf(4));hs.add(String.valueOf(5));hs.add(null);System.out.println(hs);}}
五、映射
1.Map接口,也称为键/值集合,元素都是成对出现的,一个被称为键,另一个称为值。键和值都是对象,键用来在Map唯一表示一个对象。键对象在Map不能重复出现,就像Set中的元素不能重复一样。
2.常用方法:containsKey(Object key、get()、put()、remove()、size()。
3.HashMap类,是常用的实现之一。
代码演示:
import java.tuil.*;public class MapDemo{public static void main(String[] args){//创建HashMap对象HashMap hm=new HashMap();//向HashMap添加内容hm.put(Integer.valueOf(9005),"Tom");hm.put(Integer.valueOf(9003),"Tom1");hm.put(Integer.valueOf(9004),"Tom2");hm.put(Integer.valueOf(9002),"Tom3");hm.put(Integer.valueOf(9001),"Tom4");System.out.println(hm);hm.remove(Integer.valueOf(9005),"Tom");hm.put(Integer.valueOf(9006),"Tom6");Object o=hm.get(9003);//使用了自动打包的功能String s=(String)o;System.out.println(s.length());}}




















0 0