53.【Java 集合】(二)

简介: 53.【Java 集合】

1.6手动输入类的成员信息

基本思路:先对成员函数进行赋值, 然后把类对象添加到集合中去

import java.sql.SQLOutput;
import java.util.*;
import java.awt.*;
import java.lang.Math;
public class hello  {
    public static void main(String []avgs) {
        //创建集合
        ArrayList<Student> s=new ArrayList<>();  //集合
        Scanner sc=new Scanner(System.in);
      for(int i=0;i<3;i++){  //因为集合的数量我们不清楚,所以要手动操作
          Student stu=new Student();   //放在这里目的是为了进行一次可以初始化一次.
          System.out.println("请输入您的姓名:");
          String name=sc.next();
          stu.setName(name);
          System.out.println("请输入您的年龄:");
          int age=sc.nextInt();
           stu.setAge(age);
           //添加对象
          s.add(stu);
      }
        System.out.println(s);  // 这样直接遍历的是地址
        for(int i=0;i<s.size();i++){
            Student stu=s.get(i);  //依次得到s1,s2,s3
            System.out.println(stu.getName()+" "+stu.getAge());
        }
    }
}

注意事项: new一次一个地址

1.7通过查找比对相等输出成员信息

题目描述:有三个对象,成员分别有 ID PASSWORLD NAME三个成员变量,现在我们通过指定的ID 对集合进行查找,如果集合里面存在的话,那么我们就把这个ID的所有信息 罗列出来。否则的话,我们就不进行罗列。让他们重新输入整确的信息为止。

import java.sql.SQLOutput;
import java.util.*;
import java.awt.*;
import java.lang.Math;
public class hello  {
    public static void main(String []avgs) {
        //创建集合
    ArrayList<User> us=new ArrayList<>();
    User u1=new User("吉士先生","l21032114",121788);
    User u2=new User("小哈喇子","w21032114",121789);
    User u3=new User("大聪明","t21032114",121777);
    //添加集合:
        us.add(u1);
        us.add(u2);
        us.add(u3);
        System.out.println("请输入您的Id");
        Scanner sc=new Scanner(System.in);
        while(true) {
            try {   //在这里进行异常处理的操作,
                String id=sc.next();
                User s = Judge(us, id);
                System.out.println("用户名是:" + s.getName() + " " + "ID是:" + s.getId() + " " + "密码是:" + s.getPassworld());
                break;
            } catch (Exception e) {
                System.out.println("您输入的信息不存在!请重试!!:");
            }
        }
    }
    //设置成员方法,目的是为了减少空间的占用情况
    public static User Judge(ArrayList<User> us,String id){
        for(int i=0;i<us.size();i++){
            User s=us.get(i);   //对集合遍历得到的是一个对象
            if(s.getId().equals(id)){
                return s;
            }
        }
        return null;
    }
}

1.8通过价格查找在某个范围的情况下输出所有信息:

基本思路,在方法的时候。新建一个集合。假如说元素满足条件的话。就让这个元素放到一个新的集合里面,最后返回新的集合,就好了。

import java.sql.SQLOutput;
import java.util.*;
import java.awt.*;
import java.lang.Math;
public class hello  {
    public static void main(String []avgs) {
        //创建集合
    ArrayList<User> us=new ArrayList<>();
    User u1=new User("吉士先生","l21032114",3500);
    User u2=new User("小哈喇子","w21032114",2200);
    User u3=new User("大聪明","t21032114",3100);
    //添加集合:
        us.add(u1);
        us.add(u2);
        us.add(u3);
        ArrayList<User> s = Judge(us);
        for(int i=0;i<s.size();i++) {
            User k=new User();
             k=s.get(i);
             System.out.println("用户名是:" + k.getName() + " " + "ID是:" + k.getId() + " " + "密码是:" + k.getPassworld());
         }
        }
    public static ArrayList<User> Judge(ArrayList<User> us){
        ArrayList<User> m=new ArrayList<>();
        for(int i=0;i<us.size();i++){
            User s=us.get(i);   //对集合遍历得到的是一个对象
            int price=s.getPassworld();  //得到价格
            if(price>3000){
                m.add(s);
            }
        }
        return m;
    }
}

1.9寻找最大值并返回最大值的所有信息:

工具类:

public static Student FindMaxScore(ArrayList<Student> stu){
        double max;
        Student s=stu.get(0);
        max=s.getScore();
        for(int i=1;i<stu.size();i++){
            Student s1=stu.get(i);
            double num=s1.getScore();
            if(num>max){
                s=s1;    //对象拷贝
            }
        }
        return s;
    }

JavaBean类:

public class Student {
    private String name;
    private double score;
    private String ID;
    public Student() {
    }
    public Student(String name, double score, String ID) {
        this.name = name;
        this.score = score;
        this.ID = ID;
    }
    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;
    }
    public String getID() {
        return ID;
    }
    public void setID(String ID) {
        this.ID = ID;
    }
}

测试类:

import java.sql.SQLOutput;
import java.util.*;
import java.awt.*;
import java.lang.Math;
public class hello {
    public static void main(String[] avgs) {
     ArrayList<Student> stu=new ArrayList<>();
     Student s=new Student("吉士先生",94.3,"256dsd");
     Student s1=new Student("小姐也",56.6,"22222d");
     Student s2=new Student("大聪明",96.3,"11111d");
     stu.add(s);
     stu.add(s1);
     stu.add(s2);
     Student s3=Util.FindMaxScore(stu);
        System.out.println("最大值的信息是:"+s3.getName()+" "+s3.getScore()+" "+s3.getID());
    }
}

相关文章
|
2月前
|
安全 Java 容器
【Java集合类面试二十七】、谈谈CopyOnWriteArrayList的原理
CopyOnWriteArrayList是一种线程安全的ArrayList,通过在写操作时复制新数组来保证线程安全,适用于读多写少的场景,但可能因内存占用和无法保证实时性而有性能问题。
|
2月前
|
存储 安全 Java
【Java集合类面试二十五】、有哪些线程安全的List?
线程安全的List包括Vector、Collections.SynchronizedList和CopyOnWriteArrayList,其中CopyOnWriteArrayList通过复制底层数组实现写操作,提供了最优的线程安全性能。
|
2月前
|
Java
【Java集合类面试二十八】、说一说TreeSet和HashSet的区别
HashSet基于哈希表实现,无序且可以有一个null元素;TreeSet基于红黑树实现,支持排序,不允许null元素。
|
2月前
|
Java
【Java集合类面试二十三】、List和Set有什么区别?
List和Set的主要区别在于List是一个有序且允许元素重复的集合,而Set是一个无序且元素不重复的集合。
|
2月前
|
Java
【Java集合类面试二十六】、介绍一下ArrayList的数据结构?
ArrayList是基于可动态扩展的数组实现的,支持快速随机访问,但在插入和删除操作时可能需要数组复制而性能较差。
|
2月前
|
存储 Java 索引
【Java集合类面试二十四】、ArrayList和LinkedList有什么区别?
ArrayList基于动态数组实现,支持快速随机访问;LinkedList基于双向链表实现,插入和删除操作更高效,但占用更多内存。
|
19天前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
9天前
|
存储 安全 Java
Java 常用集合分类
Java 常用集合分类
13 2
|
2月前
|
Java
用JAVA架建List集合为树形结构的代码方法
这段代码定义了一个表示树形结构的 `Node` 类和一个用于构建树形结构的 `TreeController`。`Node` 类包含基本属性如 `id`、`pid`、`name` 和 `type`,以及子节点列表 `children`。`TreeController` 包含初始化节点列表并将其转换为树形结构的方法。通过过滤和分组操作实现树形结构的构建。详情可见:[代码示例链接1](http://www.zidongmutanji.com/zsjx/43551.html),[代码效果参考链接2](https://www.257342.com/sitemap/post.html)。
31 5
|
2月前
|
存储 Java 程序员
Java中的集合框架:从入门到精通
【8月更文挑战第30天】在Java的世界里,集合框架是一块基石,它不仅承载着数据的存储和操作,还体现了面向对象编程的精髓。本篇文章将带你遨游Java集合框架的海洋,从基础概念到高级应用,一步步揭示它的奥秘。你将学会如何选择合适的集合类型,掌握集合的遍历技巧,以及理解集合框架背后的设计哲学。让我们一起探索这个强大工具,解锁数据结构的新视角。
下一篇
无影云桌面