两大集合框架
- Colection
- Map
深色为使用频率高的。
Collection
Set
|————HashSet:以哈希表的形式存放元素,插入删除速度很快。
List
|————ArrayList:动态数组
|————LinkedList:链表、队列、堆栈。
Collection 方法
- ArrayList & LinkedList 都适用。
//先创建列,在对列进行操作。
LinkedList<Integer> list = new LinkedList<Integer>();
for (int i = 0; i < 10; i++) {
Random random = new Random();
double x = random.nextDouble();
list.add((int)(x*100));
Collections.sort(list);//排序
Collections.reverse(list);//倒叙排列
Collections.shuffle(list);//洗牌,随机排序
}
List
- ArrayList实现了List接口
ArrayList
- 常用方法示例
ArrayList<Student> students = new ArrayList<Student>();//创建集合
Student student1 = new Student(25,"eric");
Student student2 = new Student(18,"rose");
//添加元素
students.add(student1);
students.add(student2);
//是否包含某元素,返回布尔类型。
System.out.println(students.contains(student1));
//获取指定位置的对象。
Student student = students.get(0);
//获取对象在集合中的位置
System.out.println(students.indexOf(student1));
//删除对象
students.remove(1);//依据下标删除元素
students.remove(student2);//依据元素名删除元素
//替换某个元素
students.set(0, new Student(25,"Eric"));
//将集合转化为数组
Student[] stu = students.toArray(new Student[] {});//注意转换格式。为什么是这样的。
//导入另一个集合中的所有元素
ArrayList<Student> another = new ArrayList<Student>();
another.addAll(students);//将students集合中的元素全部导入到新的集合。
//清空集合
another.clear();
LinkedList
set
HashSet
TreeSet
//set不允许有重复的元素
Set set = new HashSet();
set.add("Bernadine");
set.add("Elizabeth");
set.add("Gene");
set.add("Elizabeth");
set.add("Clara");
System.out.println(set);
Set sortedSet = new TreeSet(set);//对内容进行了排序
System.out.println(sortedSet);
//输出结果
[Bernadine, Gene, Elizabeth, Clara]
[Bernadine, Clara, Elizabeth, Gene]
Map
遍历
- 迭代器遍历
java.util.List<Student> students = new ArrayList<Student>();
Student student1 = new Student(25,"eric");
Student student2 = new Student(18,"rose");
//添加元素
students.add(student1);
students.add(student2);
//迭代器的while写法
Iterator<Student> iterator = students.iterator();
while (iterator.hasNext()) {
Student student = iterator.next();
System.out.println(student.getName());
//迭代器的for 写法
for ( Iterator<Student> iterator = students.iterator();iterator.hasNext();) {
Student student = iterator.next();
System.out.println(student.getName());
}