Java中的集合

来源:互联网 发布:淘宝网卖什么东西好 编辑:程序博客网 时间:2024/05/05 00:57
集合框架
    集合的由来
 数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少 
   数组和集合的区别
区别1 : 
数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值
集合只能存储引用数据类型(对象)集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象
区别2:
数组长度是固定的,不能自动增长
集合的长度的是可变的,可以根据元素的增加而增长
    数组和集合什么时候用
1,如果元素个数是固定的推荐用数组

2,如果元素个数不是固定的推荐用集合



collection类的使用:

                Collection c = new ArrayList();boolean a1 = c.add("abc");boolean a2 = c.add(true);//自动装箱,new Boolean(true);boolean a1 = c.add(new Student("李四",23));//Student类自己定义System.out.println(c);


泛型可以用来消除安全隐患

将集合转成数组进行遍历:

Collection c = new ArrayList();c.add(Student("zhangsan",24));c.add(Student("wanngwu",22));Object[] arr = c.toArray();for (int i = 0; i < arr.length; i++) {//System.out.println(arr[i]);或者:Student s = (Student)arr[i];System.out.println("name:"+s.getName()+",age:"+getAge());

Collection类中addAll()与add( )的区别是什么??


集合的迭代器遍历:

Collection c = new ArrayList();c.add("a");c.add("b");Iterator i = c.iterator();while(i.hasNext()){System.out.println(i.next());}


public static void main(String[] args) {// TODO Auto-generated method stubList li = new ArrayList();li.add("a");li.add("b");li.add("c");li.add("d");/*Object o1 =li.remove(1);//删除的时候不会自动装箱System.out.println(o1);System.out.println(li);*///Object o1 = li.get(0);//System.out.println(o1);    //通过List特有的get(),通过索引遍历List集合for (int i = 0; i < li.size(); i++) {System.out.println(li.get(i));}Iterator it = li.iterator();while(it.hasNext()){System.out.println(it.next());}


通过get()和size()方法进行遍历:


并发修改异常的产生及解决:








0 0