一.ArrayList类是一个特殊的数组——动态数组
通过添加和删除数组,就可以动态的改变数组的长度。
优点:1.支持自动改变大小 2.可以灵活的插入和删除元素
缺点:速度较慢
以下为一些有关ArrayList<Integer>的基本使用
ArrayList<Integer> AL = new ArrayList<Integer>
ArrayList<Integer> AL2= new ArrayList<Integer>
1.添加元素:
AL.add(9);
2.最大/小值:
Collections.max(AL)/Collections.min(AL)
3.输出:
System.out.println(AL);
4.拷贝:
AL2.addAll(AL);
5.从小到大排序:
Collections.sort(AL);
6.从大到小排序:
Collections.sort(AL,Collections.reverseOrder());
7.倒序:
Collections.reverse();
8.求某个元素首次出现的位置
AL.indexOf(9);
9.在指定位置插入元素
AL.add(1,49);
11.移除特定位置元素
AL.remove(1);
二.Java中的length,length(),size().
1.length是针对数组而言,表示数组的长度,即数组中元素的个数,是数组的一个属性。
2.length()是一个方法,常用于字符串,表示字符串中所包含字符的个数。
(注:char字符没有length()方法。
3.size()也是一个方法,针对泛型集合,表示集合容器中所含元素的个数。
三.Java中int和String互相转换方法
1.String转为int
Integer.parseInt(str)
Integer.valueOf(str).intValue()
2.int转为String
num + ""
String.valueOf(num)
Integer.toString(num)
四.Java中的for-each循环
此循环专用于循环遍历数组中的元素。
用法:
for(type variableName : arrayName)
{
要执行的代码
}
五.二分查找
基本思想:每次查找时将待找区间分成两部分并只取一部分查找。
使用条件:查找的内容逻辑上是有序的且查找的数量只有一个。
过程概述: ·首先选择数组中间数字和要查找的目标值相比较
·相等直接返回答案
·不相等:·中间数大于目标值,中间向右排除。
·中间数小于目标值,中间向左排除。
关键问题:middle左右元素个数不等不是关键问题,中间那个数字该不该加入下一次查找才是关键。
1.while循环中left和right的关系:是小于等于还是小于?
2.迭代过程中middle和right的关系:是right = middle - 1/middle?
法一:查找区间在[left,right]
循环条件:left <= right
right赋值:right = middle - 1
法二:查找区间在[left,right)
循环条件:left < right
right赋值:right = middle