JavaSE基础07(集合)

发布时间 2023-10-16 20:02:34作者: 卡皮巴拉
  • 集合collection

  1. 数组存放数据的弊端:
    1. 数组定义后长度不可变;
    2. 定义数组的类型不能变,数据只能存放指定类型的对象;
  2. 解决数组存放的弊端方法:
    1. 摒弃小数组,换一个更大的来存放(动态数组扩容);
    2. 数组定义成Object,可以存放所有的类型;
    3. 集合扩容 在原来的基础上+>>1;
  3. System.arraycopy(Object src,int srcPos,Object dre,int destPos,int length);
  4. 数组的复制参数: (原数组 原数组开始复制的位置 目标数组  从哪个位置开始粘贴到目标数组  复制数组的个数);
  • ArrayList
  1. ArrayList list=new ArrayList();    首先创建ArrayList对象;
  2.  list.add() ,往集合里添加元素或 list.add(要添入的位置,添入数组);
  3. list.set(要修改的位置,修改的值); 修改数据
  4. list.remove(要删除元素的下标)或list.remove(要删除的元素);
  5. list.get(下标值)查数据;
  6. 有序集合,进出数据是一样的;
  • 遍历数组方法
    • 迭代器
              ArrayList list=init();//init()方法返回的ArrayList
              //迭代器 用于遍历集合的每一个元素
              Iterator it=list.iterator();
              //是否有下一个数据
              while (it.hasNext()){
                  //获取下一个数据
                  Object obj=it.next();
                  System.out.print(obj+",");
              }
    •  把集合放在数组里,然后遍历数组;

              Object[] arr=list.toArray();//把集合放在Object数组里
              System.out.println(Arrays.toString(arr));//打印数组

       

  • LinkedList
  1. LinkedList使用的是双向链表;
  2. 查找使用ArrayList更快;
  3. 插入和删除使用LinkedList更优;
  • Set集合
  1. 无序集合,不能存在重复的数据;
  2. 使用equals方法验证数据是否相等;
  3. 遍历set集合;
            for(Object obj:set) {//把每一个都赋给obj
                System.out.println(obj);
            }
  4. 验证set里面有没有这个元素     返回的是布尔值;
            boolean b =set.contains("张三");//验证set里面有没有这个元素  返回布尔类型
            System.out.println(b);

  • HashSet
  1. 可以存储null值,只能存储一个;
  2. 主要用于安全验证上;
  • TreeSet
  1. 排序集合,但是也是无序集合;
  2. 不可以存放null值,null值不可比较;
  3. 存的数据都是可比较的,尽量存同类数据;
  4. 数据结构是红黑树;