集合小笔记

来源:互联网 发布:linux怎么做个界面 编辑:程序博客网 时间:2024/06/11 20:50

数组与集合的区别:

1 、数组:1、长度不能改变。2.存放同一类型的数据。

集合: 1. 长度可变。2.存放不同类型的数据。

Vector: add(); get(); size();

2、内容维护:add( )添加一个集合时,相当于添加了一个数组。

addAll( )把一个集合添加到另一个集合中,作为集合的元素。

remove( )接受整型,索引自动变,删除时,先删除后面的,在删除前面的。

clear( )new一个对象出来的区别就是前面的不占内存,后面的占内存。

toArray();

3、内容查找:indexOf( ) 返回索引,不存在返回-1

          contains( ) 判断是否包含某个值。

          size( ) 求大小。

          lastIndexOf( )

          get( ) 取值。isEmpty( );

4、在集合中添加一个对象时,必须重写equals()方法。

5、给集合中添加一个整型时如:

 Vector v=new Vector( );

  v.add(12); int a=((Integer)v.get(0)).intValue();

int a=(Integer)v.get(0); 这个主要取决于jdk的版本。

6、泛型限制了集合的功能。

Vector v=new Vector( );

for(String  s:v)//这个循环只能用于泛型。

{System.out.println(s);}

7、集合框架包括Collection Map

  Collection 接口包含List Set : List 中又包括Vector(线程安全,get()方法的执行效率高).ArrayList(用于不经常修改的集合,get()方法的执行效率高)(前两者用于经常不修改的集合)、LinkedList(链表结构,执行增,删,修改效率高。但get()方法的执行效率低).Set集合使用的是散列算法,使用的是二维数组进行存储哈希码(通过余10来获得哈希码),调用set方法时,要调用hashcode( )方法和equals( )方法。Set不能有重复的值出现。

重写HashCode 方法:1,两个对象的HashCode不相等,两个对象肯定不相等。

   2,两个对象的HashCode相等,两个对象不一定相等。3,最终通过equals()确定。

HashSet(无序排列) HashSet set=new HashSet( );

      set.add(“abc”); set.add(“abdc”); for(String  s:set) {System.out.println(s);}

Map使用的是键值对,键重复就会被覆盖。Map map=new Map( );

 map.put(“china”,”中国”); map.get(“china”);map.size( );

Map集合遍历;Set<String> keys=map.keySet( );

              for(String key:keys){System.out.println(key+”=”+map.get(key));}

HashMap(线程非安全,允许keynull),HashTable(线程安全,key不能为null);

8、工具类 Collections 方法有:sort();binarySearch();emptySet();max();min();

replaceAll();reverse()倒排序;shuffle()随机乱序。

原创粉丝点击