知识点总结:
一、数组:
声明:
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() 删除迭代器返回的最后一个元素;