JAVA之数据结构
来源:互联网 发布:俄罗斯域名注册商 编辑:程序博客网 时间:2024/06/05 09:58
知识点总结:
一、数组:
声明: Object[] arr = new Object[长度]; Object[] arr = {o1,o2,o3}; Object[] arr = new Object[]{o1,o2,o3}; 赋值:arr[下标] = 值; 获取数组长度:arr[下标] = 值; 取值:arr[下标] 普通for循环遍历for(int i=0;i<arr.length;i++){arr[i];} foreach 排序:冒泡排序:相邻两个元素依次比较,互换位置; 选择排序:让未确定的第一个数依次和后面的比较,互换位置; Arrays.sort(arr); 按照自然升序排列; 特点:长度一旦声明,不可改变; 二维数组:赋值、遍历;
二、集合:
特点:可变长度。
Collection接口:
特点:有序、可重复; 实现类ArrayList: 添加: add(Object obj); add(int i,Object obj); addAll(Collection c); addAll(int i,Collection c); 修改: set(int i,Object newObj); 删除: remove(int i); remove(Object obj); removeAll(Collection c); retainAll(Collection c) 仅在列表中保留指定 collection 中所包含的元素; clear(); 查询: get(int i) 根据下标查询元素,返回元素; contains(Object obj) 查询列表中是否包含指定元素,包含返回true; containsAll(Collection c) 查询列表中是否包含指定的多个元素,全部包含返回true; indexOf(Object obj) 查询指定元素第一次出现的下标,;返回下标索引,没有该元素返回-1 lastIndexOf(Object obj) 查询指定元素最后一次出现的;下标,返回下标索引,没有该元素返回-1 isEmpty() 判断列表是否为空,为空返回true; 序列遍历: 使用for循环for(int i=0;i<list.size();i++){list.get(i);} 使用foreach循环; 使用iterator迭代器; it.hasNext() 如果有下一个元素,返回true; it.next() 返回下一个元素; it.remove() 删除迭代器返回的最后一个元素; 其他方法: 获取长度:size() subList(int start,int end) 截取集合,从下标start(包含)到下标end(不包含)截取; toArray() 把列表转为数组,返回的是Object[]; 补充: 把数组转为List集合,Arrays.asList(arr);
子接口:Set
特点:无序、不可重复; 实现类:HashSet 添加: add(Object obj); addAll(Collection c); 修改: set中没有修改的方法,可以间接修改,先删除、再添加; 删除: remove(Object obj); removeAll(Collection c); retainAll(Collection c) 仅保留 set 中那些包含在指定 collection 中的元素; clear() 清除所有元素; 查询: contains(Object obj) 查询set中是否包含指定元素,包含返回true; containsAll(Collection c) 查询set中是否包含指定的多个元素,全部包含返回true; isEmpty() 判断set是否为空,为空返回true; 遍历: 使用foreach循环; 使用iterator迭代器; it.hasNext() 如果有下一个元素,返回true; it.next() 返回下一个元素; it.remove() 删除迭代器返回的最后一个元素;
阅读全文