List
List<String> list = new ArrayList<>(); // 创建集合对象
list.add("a"); // 向集合添加元素
list.add("b");
list.add("c");
int i = (int) (Math.random() * list.size()); // 获得0~2之间的随机数
System.out.println("随机获取数组中的元素:" + list.get(i));
list.remove(2); // 将指定索引位置的元素从集合中移除
System.out.println("将索引是'2'的元素从数组移除后,数组中的元素是:");
for (int j = 0; j < list.size(); j++) { // 循环遍历集合
System.out.println(list.get(j)); // 获取指定索引处的值
实例化List接口对象
List<String> list = new ArrayList<>();//优先使用,数组
List<String>list2 =new LinkedList<>();//插入和删除特别频繁时,链表结构
iterator迭代器
Collection<String> list = new ArrayList<>(); // 实例化集合类对象
list.add("a"); // 向集合添加数据
Iterator<String> it = list.iterator(); // 创建迭代器
while (it.hasNext()) { // 判断是否有下一个元素
String str = (String) it.next(); // 获取集合中元素
System.out.println(str);
}
set接口
不包含重复接口
Set set = new HashSet();// 创建Set集合
Set set2 = new TreeSet();
Set<String> set3= new HashSet();
set.add("1");
set.add("9");
set.add("7");// 向集合中添加数据
set.add("3");
Iterator<String> it = set.iterator();// 创建迭代器
while (it.hasNext()) {// 遍历HashSet集合
String str = (String) it.next();// 获取集合中的元素
System.out.println(str);
}
HashSet本身不关心元素之间的顺序,但输出时却好像会从小到大排序,保留NULL
TreeSet 会希望按照元素的自然顺序进行排序使用,不允许使用NULL
Map集合
HashMap类实现的Map集合添加和删除映射关系效率更高
TreeMap 希望集合中的对象存在一定的顺序
Map<String, String> map = new HashMap<>(); // 创建Map实例
map.put("ISBN-978654", "Java从入门到精通"); // 向集合中添加对象
map.put("ISBN-978361", "Android从入门到精通");
map.put("ISBN-978893", "21天学Android");
map.put("ISBN-978756", "21天学Java");
Set<String> set = map.keySet(); // 构建Map集合中所有key对象的集合
Iterator<String> it = set.iterator(); // 创建集合迭代器
System.out.println("key值:");
while (it.hasNext()) { // 遍历集合
System.out.print(it.next()+"\t");
}
Collection<String> coll = map.values(); // 构建Map集合中所有values值集合
it = coll.iterator();
System.out.println("\nvalues值:");
while (it.hasNext()) { // 遍历集合
System.out.print(it.next()+"\t");
(1)List集合关注的是索引,其元素是顺序存放的,例如一个班的学生成绩,成绩可以重复,就可以使用List集合存取。
(2)Set集合关注唯一性,它的值不允许重复,例如每个班的学生的学号,每个学生的学号是不能重复的。
(3)Map集合关注的是唯一的标识符(KEY),它将唯一的键映射到某个元素,例如每个班学生的学号与姓名的映射,每个学号对应一个学生的姓名,学号是不能重复的,但是学生的姓名有可能重复。