集合框架
集合的由来
数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少
数组和集合的区别
区别1 :
数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值
集合只能存储引用数据类型(对象)集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象
区别2:
数组长度是固定的,不能自动增长
集合的长度的是可变的,可以根据元素的增加而增长
数组和集合什么时候用
1,如果元素个数是固定的推荐用数组
Collection类中addAll()与add( )的区别是什么??
集合的由来
数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,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 stub
List 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());
}
并发修改异常的产生及解决: