JavaSE--------基础语法(一续)

7.数据结构

(1)数组
①声明
Ⅰ.Object[] arr = new Object[长度];
Ⅱ.Object[] arr = {o1,o2,o3};
Ⅲ.Object[] arr = new Object[]{o1,o2,o3};
②赋值: arr[下标] = 值
③获取数组长度:length属性
④取值
Ⅰ.arr[下标]
Ⅱ.普通for循环遍历
Ⅲ.foreach
⑤排序
Ⅰ.冒泡排序:相邻两个元素依次比较,互换位置
Ⅱ.选择排序:让未确定的第一个数依次和后面的比较,互换位置
Ⅲ.Arrays.sort(arr); 按照自然升序排列
⑥特点:长度一旦声明,不可改变
⑦二维数组
Ⅰ.赋值
Ⅱ.遍历

(2)集合
①特点:可变长度
②Collection接口
Ⅰ.子接口:list
ⅰ.特点:有序、可重复
ⅱ.实现类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
❸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() 删除迭代器返回的最后一个元素

(3)集合的继承关系
Ⅰ.Collocation接口
ⅰ.子接口
❶Set——>实现类HashSet
❷List——>实现类ArrayList
ⅱ.实现类
Ⅰ.实现类
ⅰ.AbstractCollection抽象类
❶子类
⊙AbstractList 抽象类——>子类:ArrayList
⊙AbstractSet 抽象类——>子类:HashSet

你可能感兴趣的:(JavaSE基础语法,Java)