Java数据结构技巧
1、循环
for-each循环如果不是"[]"的数组类型,则需要提前判断数据结构是否为空,否则有可能会有空指针异常。
2、对于List对象的i到j位进行排序
for(List<String> now_result:result){List<String> sublist = now_result.subList(1,now_result.size());Collections.sort(sublist);}
sublist是指针,没有新创建对象,所以只排序sublist就可以实现对于[1,end]的排序。
3、对于循环中的对象进行增删使用迭代器
next() - 返回迭代器的下一个元素,并将迭代器的指针移到下一个位置。
hasNext() - 用于判断集合中是否还有下一个元素可以访问。
remove() - 从集合中删除迭代器最后访问的元素(可选操作)。
// 引入 ArrayList 和 Iterator 类
import java.util.ArrayList;
import java.util.Iterator;public class RunoobTest {public static void main(String[] args) {ArrayList<Integer> numbers = new ArrayList<Integer>();numbers.add(12);numbers.add(8);numbers.add(2);numbers.add(23);Iterator<Integer> it = numbers.iterator();while(it.hasNext()) {Integer i = it.next();if(i < 10) { it.remove(); // 删除小于 10 的元素}}System.out.println(numbers);}
}