1.Java核心API--集合
程序员文章站
2024-03-15 09:12:59
...
1.Map
1.1简介
学过数据结构很容易明白,对于不同的key值通过Hash函数的运算可以到达相同的位置,这就是冲突,为了解决这个冲突可以通过
(1) 开放定址法
(2) 链地址法(HashMap采用的方法)
(3) 再哈希法
(4) 建立一个公共溢栈区
1.2实例
package collection;
import java.util.HashMap;
import java.util.Scanner;
/*1根据key值获取value值,2遍历HashMap*/
public class Collection1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
HashMap<String, Integer> students = new HashMap<String, Integer>();
students.put("张三", 85);
students.put("李四", 59);
students.put("王五", 61);
// 根据key获取值
System.out.println("输入学生的姓名:");
String name = sc.next();
if (students.containsKey(name)) {
System.out.println(name + "的成绩时:" + students.get(name));
}
// 遍历HashMap
System.out.println("-------所有学生的成绩-------");
for (Object key : students.keySet()) {
System.out.println(key + "的成绩是:" + students.get(key));
}
}
}
2.List
2.1简介
List分两种一种是Arrylist,另一种是Linklist。其实,就是对应数据结构中的顺序表和链表。顺序表有利于查找但是不利于添加和删除,链表不利于查找,但是,容易添加和删除
2.2实例
package collection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
public class Collection2 {
/* 遍历列表 */
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 存放三个班级的人名
ArrayList<String> names1 = new ArrayList<String>();
ArrayList<String> names2 = new ArrayList<String>();
ArrayList<String> names3 = new ArrayList<String>();
Map grades = new HashMap();
// 一班的人名
names1.add("张三丰");
names1.add("杨过");
names1.add("郭靖");
// 二班的人名
names2.add("小龙女");
// 三班的人名
names3.add("张无忌");
// 往班级中添加成员
grades.put("一年级", names1);
grades.put("二年级", names1);
grades.put("三年级", names1);
// 根据年级查看成员
System.out.println("请输入年级:");
String grade = sc.next();
if (grades.containsKey(grade)) {
ArrayList al = (ArrayList) grades.get(grade);
Iterator it = al.iterator();
System.out.println("一年级的学生列表:");
while (it.hasNext()) {
System.out.println(it.next());
}
}
}
}