本文主要是介绍Java对象插入排序算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
之前的一篇是基本数据类型的插入排序!这篇是对象类型插入排序!
代码如下:
class People
{
private String country;
private String name;
private int age;
public People(String country,String name,int age){
this.country = country;
this.name = name;
this.age = age;
}
public void display(){
System.out.print("Country is: " + country);
System.out.print(" Name is: " + name);
System.out.println(" Age is: " + age);
}
public String getName(){
return name;
}
}
class ArrayInsertObject
{
private People[] a;
private int nElems;
public ArrayInsertObject(int maxSize){
a = new People[maxSize];
nElems = 0;
}
public People find(String searchName){
int j ;
for(j = 0;j < nElems;j++){
if(a[j].getName().equals(searchName)){
break;
}
}
if(j == nElems){
return null;
}else{
return a[j];
}
}
public void insert(String country,String name,int age){
a[nElems] = new People(country,name,age);
nElems++;
}
public boolean delete(String name){
int j ;
for(j = 0;j < nElems;j++){
if(a[j].getName().equals(name)){
break;
}
}
if(j == nElems){
return false;
}else{
for(int k = j;k < nElems;k++)
a[k] = a[k + 1];
nElems--;
return true;
}
}
public void displayPeople(){
for(int j = 0;j < nElems;j++)
a[j].display();
}
public void insertSort(){
int in ,out;
for(out = 1;out < nElems;out++){
People temp = a[out];
in = out;
while(in > 0&&a[in - 1].getName().compareTo(temp.getName()) > 0){
a[in] = a[in - 1];
--in;
}
a[in] = temp;
}
}
}
public class ObjectSortApp
{
public static void main(String[] args){
int maxSize = 100;
ArrayInsertObject arr;
arr = new ArrayInsertObject(maxSize);
arr.insert("China","李斯",39);
arr.insert("America","James",29);
arr.insert("England","David",40);
arr.insert("France","Simth",30);
arr.insert("Germany","Tony",32);
arr.insert("Spanish","Jose",72);
arr.insert("Russia","Well",49);
arr.insert("Japan","Mfff",63);
System.out.println("排序前:");
arr.displayPeople();
arr.insertSort();
System.out.println("排序后:");
arr.displayPeople();
String name = "Wells";
People found ;
found = arr.find(name);
if(found != null){
System.out.print("Found ");
found.display();
}else{
System.out.println("Can't find " + name);
}
System.out.println("删除下面的两个人");
arr.delete("Mfff");
arr.delete("Jose");
arr.displayPeople();
}
}
运行结果如图所示:
这篇关于Java对象插入排序算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!