动态数组中的一些方法
方法 | 返回内容 | 功能 |
---|---|---|
List list=new ArrayList<>(); | 创建一个新的数组 | 创建一个新的数组 |
list.add(元素) | void | 在数组末尾添加元素 |
list.add(位置,元素) | void | 在指定位置添加元素 |
list1.addAll(list2) | void | list1添加list2中的所有元素 |
list.set(位置,元素) | void | 重设那个位置上的元素 |
list.get(位置) | 元素 | 返回指定位置的元素 |
list.remove() | boolean | 删除数组的第一个元素 |
list.remove(位置) | boolean | 删除指定位置的元素 |
list.contains(元素) | boolean | 数值是否包含这个元素 |
list.indexOf(位置) | 元素 | 返回指定位置的元素 |
list.size() | int型 | 数组的大小(元素的个数) |
list.isEmpty() | boolean | 判断数组是否为空 |
list.clear() | void | 清除所有元素 |
说明:
- remove有两种方式:
一种是list.remove(int index)
另一种是list.remove(Object o)
默认是remove index
如果list中的组成元素是int型,又想要remove object的话,可以使用:
list.remove((Integer)10)
遍历动态数组的4种方法
(推荐使用第一、二种,性能更好)
第一种:使用for循环
for(int i=0;i<list.size();i++)
System.out.print(list.get(i));
第二种:使用增强for循环
for(Integer num : list)
System.out.print(num);
第三种:使用迭代器
Iterator<Integer> it=list.iterator();
while(it.hasNext())
System.out.print(it.next());
创建二维ArrayList数组
List<List<Integer>> list=new ArrayList<>();
ArrayList和LinkedList的使用比较
- Vector是线程安全的,对应性能较慢;ArrayList和LinkedList是线程不安全的
- ArrayList推荐使用get方法遍历,LinkedList推荐使用迭代器来遍历
- 如果需要经常对数组进行插入和删除操作,推荐使用LinkedList
创建动态数组的静态数组
List<Integer>[] bucket = new List[array_length];
// List<Integer>[] bucket = new ArrayList[array_length];
for(int i=0;i<array_length;i++)
bucket[i]=new ArrayList<>();
其他常用方法
返回单对象的List列表
List<Integer> res = Collections.singletonList(0);
上面的方法返回一个单元素的List数组,该List数组只可读
Arrays.asList:可以将数组保存为List
int[] nums = {1,2,3};
List<Integer> res = Arrays.asList(nums);
上面的方法可以将数组转换为List,但是转化后的List只可读不可add和remove