package zuoye;
import java.util.*;
public class lianxi_3_2 {
public static void main(String[] args) {
// test1();
// test2();
// test3();
test4();
}
/**
* 1) 创建一个List,在List 中增加三个工人,基本信息如下:
* 姓名 年龄 工资
* zhang3 18 3000
* li4 25 3500
* wang5 22 3200
* 2) 在li4 之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资3300
* 3) 删除wang5 的信息
* 4) 利用for 循环遍历,打印List 中所有工人的信息
* 5) 利用迭代遍历,对List 中所有的工人调用work 方法。
*/
public static void test1(){
List <Worker1> workers=new ArrayList<>();
workers.add(new Worker1("zhang3",12,3000));
workers.add(new Worker1("li4",25,3500));
workers.add(new Worker1("wang5",22,3200));
System.out.println(workers);
int index=0;//保存li4在集合中的下标
for (int i = 0; i < workers.size(); i++) {
if (workers.get(i).getName().equals("li4")); {
index=i;
}
}
System.out.println("li4在集合中的下标"+index);
//插入zhao6
workers.add(index,new Worker1("zhao6",24,3300));
System.out.println(workers);
//删除wang5的信息
Iterator <Worker1> it=workers.iterator();
while (it.hasNext()){ //集合中是否还有下一个元素?
Worker1 worker=it.next();//获取下一个元素
if (worker.getName().equals("wang5")){//如果名字是 wang5
it.remove(); //删除 注意一定使用迭代器 提供的删除方法 否则报错、
}
}
System.out.println(workers);
for (Worker1 i:workers){
System.out.println(i);
}
Iterator <Worker1> it2=workers.listIterator();
while (it2.hasNext()){
Worker1 worker=it.next();
worker.work();
}
}
/**
* 2.去除集合中字符串的重复值(要求使用 ArrayList)
* 执行结果如下:
* 旧集合为:[李玉伟, 李嘉诚, 马化腾, 刘强东, 李玉伟, 王健林, 马云, 雷军]
* 新集合为:[李玉伟, 李嘉诚, 马化腾, 刘强东, 王健林, 马云, 雷军]
*/
public static void test2(){
String[] strArr={"李玉伟", "李嘉诚", "马化腾", "刘强东", "李玉伟","李玉伟", "王健林", "马云", "雷军","雷军"};
List<String> list= Arrays.asList(strArr);//数组 转集合
// Object[] objects=list.toArray();//集合 转数组
System.out.println(list);
// List<String>list1=new ArrayList<>();
// list1.addAll(list);
// for (int i = 0; i < list1.size(); i++) {
// for (int j = i+1; j < list1.size(); j++) {
// if (list1.get(i).equals(list1.get(j))){
// list1.remove(j);
// j--;
// }
// }
// }
// System.out.println(list1);
List<String> temp = new ArrayList<String>();
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String str = iterator.next();
if (!temp.contains(str)) {
temp.add(str);
}
}
for (String i : temp) {
System.out.println(i);
}
}
/**
*
3.分析以下需求,并用代码实现:(使用ArrayList)
(1)生成10个1至100之间的随机整数(不能重复),存入一个List集合
(2)编写方法对List集合进行排序
(2)然后利用迭代器遍历集合元素并输出
(3)如:15 18 20 40 46 60 65 70 75 91
*/
public static void test3(){
List<Integer> list=new ArrayList<>();
// for (int i = 0; i < 10; i++) {
// //Math.random() 0-1
// int ranNum= (int)(Math.random()*100+1);
// if (!list.contains(ranNum)){//若当前集合中 不包含该随机数
// list.add(ranNum);
// i++;
// }
// }
Random rd=new Random();
while (list.size()<10){
int num=rd.nextInt(100);
if (!list.contains(num)){
list.add(num);
}
}
System.out.println(list);
//编写方法对 List集合进行排序
List <Integer> sortList=sortList(list);
System.out.println("排序后"+list);
//然后利用迭代器便利集合元素输出
Iterator <Integer> iterator=sortList.iterator();
while (iterator.hasNext()){
Integer integer=iterator.next();
System.out.println(integer);
}
}
public static List<Integer>sortList(List<Integer>list){
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < list.size()-i-1; j++) {
// 相邻两个元素 作比较 前者>后者 ==>交换位置
if (list.get(j)>list.get(j+1)){
int temp=list.get(j);
list.set(j,list.get(j+1));
list.set(j+1,temp);
}
}
}
return list;
}
/**
* 4.编写一个类Book,具有name,price,press(出版社),author 然后创建5个对象放入ArrayList中,并实现按照price大小排序,
* 然后遍历ArrayList输出每个Book对象, 使用toString 方法打印。2
*/
private static void test4(){
Book1 book1=new Book1("凡人修仙传",100.5,"人民教育出版社","妄语");
Book1 book2=new Book1("斗罗大陆",180.5,"人民教育出版社","妄语");
Book1 book3=new Book1("斗破苍穹",16.5,"人民教育出版社","妄语");
Book1 book4=new Book1("吞噬星空",145.5,"人民教育出版社","妄语");
Book1 book5=new Book1("诡秘之主",106.5,"人民教育出版社","妄语");
List<Book1> book1s=new ArrayList<>();
book1s.add(book1);
book1s.add(book2);
book1s.add(book3);
book1s.add(book4);
book1s.add(book5);
System.out.println(book1s);
}
/**
* 5.使用List集合存储10个学生信息。
* 学生信息:姓名,年龄,成绩。
* 统计所有姓“张”的同学的平均成绩。
*/
public static void test5(){
}
}
class Worker1 {
private int age;
private String name;
@Override
public String toString() {
return "Worker{" +
"age=" + age +
", name='" + name + '\'' +
", salary=" + salary +
'}';
}
private double salary;
public Worker1 (){
}
public Worker1 (String name, int age, double salary){
this.name = name;
this.age = age;
this.salary = salary;
}
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 getSalary(){ return salary; }
public void setSalary(double salary){ this.salary = salary; }
public void work(){
System.out.println(name + "work");
}
}
LIST ArrayList 的实际运用
最新推荐文章于 2025-12-12 10:48:03 发布
该博客主要围绕Java中List集合展开,包含创建List并添加、插入、删除元素,去除集合中字符串重复值,生成随机整数存入List并排序,创建对象存入List并按属性排序,以及统计特定学生平均成绩等操作,展示了List集合在不同场景下的应用。
1189

被折叠的 条评论
为什么被折叠?



