package day05;
/*
集合:
List (列表):有序、里面的元素可重复、可变长度。
List是接口,常用的实现类:ArrayList(可变长度的数组)、LInkedList(链接结构)、Vector
ArrayList:遍历元素、随机访问元素,效率比较高。
LinkedList:插入或者删除元素时,效果比较高。
Set (集合)
Map (字典)
*/
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
public class Demo02 {
public static void main(String[] args) {
// <String> 表示列表中元素的类型
// List 是接口,用它的实现类ArrayList来实例化
List<String> names = new ArrayList<>();
// 增、删、改、查元素
names.add("Tom");
names.add("Lily");
names.add("Jack");
names.add("Tony");
names.add("Lily");
// [HanMeimei,Tony,Tom,Lily,Jack,Tony,Tom,
System.out.println(names);
System.out.println(names.indexOf("Tom")); // 2
System.out.println(names.lastIndexOf("Tom")); // 6
// 遍历列表(for循环遍历索引,foreach)
for (int i = 0; i < names.size(); i++) {
System.out.println(names.get(i));
}
System.out.println("=========================================");
for (String name : names) {
System.out.println(name);
}
// 删除元素
String n = names.remove(0);
System.out.println("删除索引为0的元素,元素的值为:" + n);
boolean bool = names.remove("Jack");
System.out.println("删除Jack的结果:" + bool);
System.out.println(names);
// 修改元素的值
names.set(0, "HanMeimei");
System.out.println(names);
// 获取元素的值 数组用[0]获取,列表用get方法
System.out.println(names.get(0));
// 获取列表长度
System.out.println(names.size());
// 查询,是否包含某个元素
System.out.println(names.contains("Tom"));
// 获取元素对应的索引
System.out.println(names);
/*
练习:定义一个学生类,name、score两个属性,toString方法,构造方法。
新建3个学生,把学生加入到列表中。
遍历列表,每个学生的信息打印到一行,用\t分割开。
*/
Student stu1 = new Student("Tom", 100);
Student stu2 = new Student("Tony", 90);
Student stu3 = new Student("Jack", 95);
List<Student> students = new ArrayList<>();
students.add(stu1);
students.add(stu2);
students.add(stu3);
System.out.println(students);
for (Student stu : students) {
System.out.println("姓名:" + stu.getNames() + "\t分数:" + stu.getScore());
}
// 创建一个列表,asList 把数组转成列表
List<Integer> nums = Arrays.asList(1, 2, 3, 4, 5, 6);
System.out.println(nums);
// 列表转数组
Integer[] ns = (Integer[]) nums.toArray();
System.out.println(Arrays.toString(ns));
List<Integer> nums2 = Arrays.asList(10, 20, 30, 40, 50, 60);
// 二个列表合并,Arrays.asList创建的列表不支持addAll
// nums.addAll(nums);
System.out.println(nums);
List<String> aa = new ArrayList<>();
aa.add("aa");
aa.add("bb");
names.addAll(aa);
System.out.println(names);
LinkedList<String> linkedList = new LinkedList<>();
linkedList.add("red");
linkedList.add("blue");
linkedList.addFirst("green"); // 在头部添加元素
linkedList.addLast("black"); // 在尾部添加元素
System.out.println(linkedList);
linkedList.removeFirst(); // 删除第一个
linkedList.removeLast(); // 删除最后一个
System.out.println(linkedList);
}
}
class Student {
String names;
float score;
public Student(String names, float score) {
this.names = names;
this.score = score;
}
public String getNames() {
return names;
}
public void setNames(String names) {
this.names = names;
}
public float getScore() {
return score;
}
public void setScore(float score) {
this.score = score;
}
@Override
public String toString() {
return "Student{" +
"names='" + names + '\'' +
", score=" + score +
'}';
}
}
|