List集合案例
package collection;
public class Student {
private String stuNum; // 学号
private int age; // 年龄
private String name; // 姓名
private double score; // 成绩
@Override
public String toString() { //描述对象信息
return "Student [stuNo=" + stuNum + ", age=" + age + ", name=" + name + ", score=" + score + "]";
}
//初始化成员变量
public Student(String stuNum, int age, String name, double score) {
super();
this.stuNum = stuNum;
this.age = age;
this.name = name;
this.score = score;
}
public String getStuNum() {
return stuNum;
}
public void setStuNum(String stuNum) {
this.stuNum = stuNum;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
}
package collection;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
//实例化3个学生对象
Student stu1 = new Student("001", 18, "张三", 99.8);
Student stu2 = new Student("002", 19, "李四", 56);
Student stu3 = new Student("003", 16, "王五", 88.7);
//创建集合容器ArrayList
List<Student> stus = new ArrayList<Student>();
stus.add(stu1); //将学生对象保存到集合容器
stus.add(stu2); //将学生对象保存到集合容器
stus.add(stu3); //将学生对象保存到集合容器
//删除学生,按照对方的方式
// stus.remove(stu2);
//删除学生,按照索引(数组下标)
// stus.remove(0);
//增强型for循环遍历集合容器,又叫ForEach
// for(Student s : stus) {
// System.out.println(s);
// }
//在集合中查找元素
System.out.print("请输入要查找的学生名字:");
String name = new Scanner(System.in).next(); //接收用户键盘输入的字符串
boolean isOk = false;
Student stuSelect = null;
for(int i=0; i<stus.size(); i++) {
if(name.equals(stus.get(i).getName())) {
stuSelect = stus.get(i);
isOk = true;
break;
}
}
if(isOk == true) {
System.out.println(stuSelect);
} else {
System.out.println("该班级没有这个学生!!!");
}
}
}
package collection;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
public class JTest {
//1、创建ArrayList集合对象
//2、向集合中添加元素
//3、从集合中获取元素
@Test
public void test1() {
/*String[] cities = {"北京","上海","杭州","深圳"};
System.out.println(cities[1]);*/
//1、创建ArrayList集合对象
ArrayList<String> cities = new ArrayList<String>();
//2、向集合中添加元素
cities.add("北京");
cities.add("上海");
cities.add("杭州");
cities.add("深圳");
//3、从集合中获取元素
System.out.println("第二个城市是:"+cities.get(1));
for(int i=0;i<cities.size();i++) {
System.out.println(cities.get(i));
}
}
@Test
public void test2() {
List<String> stus = new ArrayList<String>();
stus.add("张三");
stus.add("李四");
stus.add("王五");
//普通for循环遍历集合容器
//for(int i=0;i<name.size();i++) {
//System.out.println(stus.get(i));
//}
//用增强型for循环遍历集合容器
for(String name : stus) {
System.out.println(name);
}
}
//案例:在一个集合容器中存放五个正数,并计算5个正数相加的和
@Test
public void test3() {
//集合容器中存放的元素必须是引用数据类型
List<Integer> nums = new ArrayList<Integer>();//int
nums.add(34);
nums.add(22);
nums.add(85);
nums.add(10);
nums.add(96);
nums.add(50);
nums.add(71);
int sum = 0;
//普通for循环遍历集合容器,求各个正数相加的和
//for(int i=0;i<nums.size();i++) {
//sum += nums.get(i);
//}
//System.out.println("和是:"+sum);
//用增强型for循环
for(int num : nums) {
sum += num;
}
System.out.println("和是:"+sum);
}
@Test
public void test4() {
//创建三个student对象并实例化
Student stu1 = new Student("10010","张三", 95.6,18);
Student stu2 = new Student("10011","李四", 88.7,19);
Student stu3 = new Student("10012","王五", 78.9,17);
//创建一个ArrayList集合存放学生对象
List<Student> stus = new ArrayList<Student>();
stus.add(stu1);//将学生对象保存到集合容器中
stus.add(stu2);
stus.add(stu3);
double sum = 0;//求和
double avg = 0;//求平均数
/*
* for(int i=0;i<stus.size();i++) { Student s = stus.get(i); sum +=
* s.getScore(); }
*/
for(Student s : stus) {
sum += s.getScore();
}
avg = sum/stus.size();
System.out.println("总和是:"+sum);
System.out.println("平均分是:"+avg);
}
@Test
public void test5() {
//创建三个student对象并实例化
Student stu1 = new Student("10010","白起", 95,18);
Student stu2 = new Student("10011","李泽言", 88.7,19);
Student stu3 = new Student("10012","许墨", 78.9,17);
//创建一个ArrayList集合存放学生对象,将三个学生保存到集合容器中
List<Student> stus = new ArrayList<Student>();
stus.add(stu1);
stus.add(stu2);
stus.add(stu3);
//stus.remove(stu1);删除集合中指定对象
//stus.remove(1);删除集合中指定元素,通过索引删除
//stus.clear();删除集合中所有的元素
//判断集合中是否包含某个元素
if(stus.contains(stu2)) {
System.out.println("集合中包含李泽言");
}else {
System.out.println("集合中不包含李泽言");
}
for(Student stu : stus) {
System.out.println(stu.toString());
}
}
@Test
public void test6() {
//实例化5个优盘对象
Usb u1 = new Usb("鸿蒙", 100);
Usb u2 = new Usb("英特尔", 200);
Usb u3 = new Usb("酷睿", 98);
Usb u4 = new Usb("烈焰", 46);
Usb u5 = new Usb("柔水", 55);
//创建ArrayList集合
List<Usb> usb = new ArrayList<Usb>();
usb.add(u1);
usb.add(u2);
usb.add(u3);
usb.add(u4);
usb.add(u5);
System.out.println("******降价前******");
//for循环遍历集合
for(Usb us : usb) {
System.out.println(us.toString());
}
//降价
for(int i=0;i<usb.size();i++) {
double price = usb.get(i).getPrice();//得到未降价的价格
price = price-2;
usb.get(i).setPrice(price);;
}
System.out.println("******降价后******");
for(Usb us : usb) {
System.out.println(us.toString());
}
}
}
包装类
package test;
public class Test1 {
public static void main(String[] args) {
//计算两个正数相加的和
int a = 5;
String b = "6";
int sum = a + Integer.parseInt(b);//通过int的包装类Integer的parsInt将字符串转换成整型
System.out.println(sum);
String c = "6.8";
double c1 = Double.parseDouble(c);//通过double的包装类Double的parsDouble将字符串转换成整型
System.out.println(c1+4.3);
String d = "true";
boolean e = Boolean.parseBoolean(d);//通过boolean的包装类Boolean的parseBoolean方法将字符串转换成布尔类型
if(e) {//if(e == true)
System.out.println("哈哈哈哈");
int x = 8;//创建一个基本数据类型的变量,存储的内容是一个正数
Integer g = 8;//创建了一个引用数据类型的变量,储存的内容是一个正数
System.out.println(g.intValue());//获得包装类对象内存储的内容
Double i = 8.8;
System.out.println(i.doubleValue());//获得包装类对象内存储的内容
}
}
}