- 集合collection
数组存放数据的弊端:- 数组定义后长度不可变;
- 定义数组的类型不能变,数据只能存放指定类型的对象;
- 解决数组存放的弊端方法:
- 摒弃小数组,换一个更大的来存放(动态数组扩容);
- 数组定义成Object,可以存放所有的类型;
- 集合扩容 在原来的基础上+>>1;
- 摒弃小数组,换一个更大的来存放(动态数组扩容);
- System.arraycopy(Object src,int srcPos,Object dre,int destPos,int length);
- 数组的复制参数: (原数组 原数组开始复制的位置 目标数组 从哪个位置开始粘贴到目标数组 复制数组的个数);
- ArrayList
- ArrayList list=new ArrayList(); 首先创建ArrayList对象;
- list.add() ,往集合里添加元素或 list.add(要添入的位置,添入数组);
- list.set(要修改的位置,修改的值); 修改数据
- list.remove(要删除元素的下标)或list.remove(要删除的元素);
- list.get(下标值)查数据;
- 有序集合,进出数据是一样的;
- 遍历数组方法
- 迭代器
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
- LinkedList使用的是双向链表;
- 查找使用ArrayList更快;
- 插入和删除使用LinkedList更优;
- Set集合
- 无序集合,不能存在重复的数据;
- 使用equals方法验证数据是否相等;
- 遍历set集合;
for(Object obj:set) {//把每一个都赋给obj System.out.println(obj); }
- 验证set里面有没有这个元素 返回的是布尔值;
boolean b =set.contains("张三");//验证set里面有没有这个元素 返回布尔类型 System.out.println(b);
- HashSet
- 可以存储null值,只能存储一个;
- 主要用于安全验证上;
- TreeSet
- 排序集合,但是也是无序集合;
- 不可以存放null值,null值不可比较;
- 存的数据都是可比较的,尽量存同类数据;
- 数据结构是红黑树;
标签:set,07,ArrayList,Object,list,数组,集合,JavaSE From: https://www.cnblogs.com/wxy01/p/17767183.html