数组与集合的区别:
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(线程非安全,允许key为null),HashTable(线程安全,key不能为null);
8、工具类 Collections 方法有:sort();binarySearch();emptySet();max();min();
replaceAll();reverse()倒排序;shuffle()随机乱序。