现有一个类person有三个属性,分别是name,age,sex。有一个List对象,保存了很多person对象的实例,请编写一个函数,对List里的实例进行排序。条件:18岁以上的人,排序顺序:性别,年龄,姓名全部降序。
第一感觉是数据库。。。
思路:对象排序
public class Person implements Comparable<Person>{
private String name;
private int age;
private String sex ;
public int compareTo(Person o) {
if(this.sex.equals("男")&& o.getSex().equals("女")){
return 1;
}else if(this.sex.equals("女")&& o.getSex().equals("男")){
return -1;
}
if(this.age > o.getAge())return 1;
else if(this.age < o.getAge())return -1;
return this.name.compareTo(o.getName()) ;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
List<Person> list = new ArrayList<Person>();
list.add(p1);
list.add(p2);
...
for(Person p : list)if(p.getAge()<=18)list.remove(p);
Collections.sort(list);
分享到:
相关推荐
Java是一种广泛使用的面向对象的编程语言,以其跨平台、高性能和丰富的类库而闻名。面试是评估求职者技能的关键环节,对于Java开发者来说,掌握核心概念、数据结构、算法、多线程、网络编程以及框架知识是至关重要的...
【标题】"The-latest-Java-interview-questions.rar_The Interview" 提供的是一个包含最新Java面试问题的压缩文件,旨在帮助准备Java面试的求职者进行有效的复习和准备。 【描述】指出这个资源涵盖了各类Java面试...
算法是解决问题的步骤和方法,包括排序(如冒泡排序、快速排序、归并排序)、搜索(如二分查找、深度优先搜索、广度优先搜索)、图论(如最短路径算法Dijkstra、拓扑排序)、动态规划等。这些算法的Java实现可以帮助...
"java-lam-interview-questions-master.zip"这个压缩包包含了丰富的Java面试题,旨在帮助求职者准备Java相关的技术面试。以下是对这些面试题所涵盖的知识点的详细解释: 1. **基础语法**:面试通常会从Java的基础...
14. **算法与数据结构**:虽然Java面试更侧重于实际应用,但基础的算法知识如排序、查找、图论等也会被问到,特别是它们在实际问题中的应用。 15. **最新技术趋势**:如Spring Boot、Spring Cloud、Docker、...
1. **Java基础知识**:理解Java语言的基本语法、面向对象特性(封装、继承、多态)、异常处理、集合框架(List、Set、Map)等是必不可少的。 2. **JVM(Java虚拟机)**:深入理解JVM的工作原理,包括类加载机制、...
Java是一种面向对象的、跨平台的编程语言,以其“一次编写,到处运行”的特性而闻名。学习Java时,你需要掌握类、对象、接口、继承、多态、封装等概念。此外,Java集合框架,包括ArrayList、LinkedList、HashMap、...
"Interview-main-源码"可能涵盖了多种编程语言,如Java、Python、C++等。通过阅读源码,我们可以深入理解各语言的特点,如面向对象、函数式编程、内存管理等方面的知识。 3. 操作系统原理 面试中,操作系统相关的...
1. **数据结构与算法**:面试中常见的基础题目,包括数组、链表、栈、队列、树、图等,以及排序和搜索算法,如冒泡排序、快速排序、二分查找等。 2. **面向对象编程**:理解类、对象、继承、多态、封装等概念,以及...
这个"interview-Java-code"压缩包文件很可能是为了帮助求职者准备Java面试而收集的一系列代码示例。 这个"Java代码集合"可能包含了各种常见面试题目的解决方案,如数据结构、算法、并发编程、IO流、网络编程、设计...
首先,我们可以推测“programmer-interview-classic-master”可能是一个GitHub仓库的名字,这暗示了它可能包含一个结构化的目录,涵盖了各种编程语言(如Java、Python、C++等)的经典面试问题和解答,以及一些数据...
5. **编程语言基础**:虽然题目未指定特定语言,但通常面试会涉及至少一种主流编程语言(如Java、C++、Python),包括语法、面向对象编程、异常处理、内存管理等。 6. **计算机科学基础**:操作系统原理、网络协议...
1. **基础概念**:首先,你需要了解Java的基本语法,包括类、对象、接口、继承、多态等面向对象编程的核心概念。此外,深入理解异常处理机制、数据类型、运算符、流程控制结构也是面试中常见的考查点。 2. **内存...
Java是一种广泛使用的面向对象的编程语言,自1995年发布以来,它在软件开发领域占据了重要地位。2023年的Java面试仍然聚焦于基础概念、核心特性、并发处理、内存管理以及最新的框架和技术趋势。以下是一些Java面试中...
这份名为"java-written-interview.rar_interview"的压缩包显然包含了与Java面试相关的珍贵资料,特别是那些准备求职或者寻求晋升的Java开发者可能会对此感兴趣。其中的葵花宝典.doc文档可能就是一份详尽的Java面试...
Java面试是每位Java开发者职业生涯中的重要环节,而"Java-interview-programs"是一个资源丰富的集合,专注于解决Java面试中常见的技术问题。这个项目不仅包含了基础的编程问题,还涵盖了面向对象设计模式的应用,如...
Java的IO流用于处理输入和输出操作,包括字节流和字符流,以及面向对象的序列化和反序列化。理解流的层次结构,熟悉各种流的用法,如FileInputStream、FileOutputStream、BufferedReader、BufferedWriter等,对于...
在Java中,数组是固定大小的内存块,而字符串则是不可变的对象。解决这类问题通常需要熟悉Java的内置方法,如`String`类的`substring()`、`trim()`和`indexOf()`等。 2. **链表**:链表是数据结构的基础,涉及到...
这份"java-summary-of-the-interview-.rar"压缩包显然包含了关于Java编程的基础知识和面试题,旨在帮助开发者和求职者深入理解Java的核心概念并准备面试。 首先,Java基础知识涵盖了以下几个关键部分: 1. **Java...
在Java领域,LeetCode上的问题通常涉及数组、链表、栈、队列、树等数据结构,以及排序、搜索、动态规划等算法。 2. **Java**: Java是一种广泛使用的面向对象的编程语言,具有跨平台性,广泛应用于Web应用、移动...