(四)存储对象的数组和大O表示法
2017-03-30 11:27
447 查看
存储对象数组
person.java(对象类)
package JavaAppClassDataArray; public class Person { private String lastName; private String firstName; private int age; public Person(String last, String first, int a) { lastName = last; firstName = first; age = a; } public void displayPerson() { System.out.print("Last name:" + lastName); System.out.print(",First name:" + firstName); System.out.println(",Age:" + age); } public String getLast() { return lastName; } }
ClassDataArray.java(数组存储对象)
package JavaAppClassDataArray; public class ClassDataArray { private Person[] a; private int nElems; public ClassDataArray(int max) { a = new Person[max]; nElems = 0; } public Person find(String searchName) {// 按姓查询 int j; for (j = 0; j < nElems; j++) if (a[j].getLast().equals(searchName)) break; if (j == nElems) return null;// 没有找到 else return a[j];// 找到了 } public void insert(String last,String first,int age){ a[nElems]=new Person(last, first, age); nElems++; } public boolean delete(String searchName) { int j; for (j = 0; j < nElems; j++) if (a[j].getLast().equals(searchName)) break; if (j == nElems) return false;// 没有找到 else { for (int k = j; k < nElems; k++) { a[k] = a[k + 1]; } nElems--; return true; } } public void displayA(){ for(int j=0;j<nElems;j++){ a[j].displayPerson(); } } }
ClassDataApp(测试类)
package JavaAppClassDataArray; public class ClassDataApp { public static void main(String[] args) { int maxSize=100; ClassDataArray arr; arr=new ClassDataArray(maxSize); arr.insert("Stimson", "哈哈", 24); arr.insert("Smith", "哈哈", 26); arr.insert("qwer", "哈哈", 28); arr.insert("喔额", "哈哈", 38); arr.insert("维恩", "哈哈", 73); arr.insert("我的", "哈哈", 89); arr.insert("无法答复", "哈哈", 58); arr.insert("SFF", "哈哈", 1); arr.displayA(); String searchKey="Stimson"; Person found; found=arr.find(searchKey); if(found!=null){ System.out.print("Found "); found.displayPerson(); }else System.out.println("Can not find"+searchKey); System.out.println("删除人"); arr.delete("Smith"); arr.displayA(); } }
大O表示法
大O表示法线性查找 O(N) 还可以
二分查找 O(log N) 良好
无序数组插入 O(1) 优秀
有序数组插入 O(N) 还可以
无序数组删除 O(N) 还可以
有序数组删除 O(N) 还可以
相关文章推荐
- 《数据结构与算法》学习笔记4 存储对象的数组和大O表示法
- 鸡啄米:C++编程入门系列之二十六(数组、指针和字符串:数组的存储与初始化、对象数组、数组作为函数参数)
- 在数组中存储对象
- Jedis存储Java对象 - (Java序列化为byte数组方式)
- 存储对象的数组
- 在C#中数组,ArrayList,List都能够存储一组对象,那么这三者到底有什么样的区别呢
- 二十六、数组、指针和字符串:数组的存储与初始化、对象数组、数组作为函数参数
- 指向自由存储区中对象的指针数组
- js数组存储对象及对象的获取
- Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式)
- Jedis存储Java对象--Java序列化为byte数组方式
- 用数组来存储显示对象
- java Redis Jedis存储Java对象 - (Java序列化为byte数组方式)
- Jedis存储Java对象--Java序列化为byte数组方式
- Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式)
- Java调用存储过程(返回:简单类型、自定义对象、列表数组)
- 存储过程返回数组对象例子
- NSUserdefault 存储自定义对象数组
- 【序列化对象源码】class转成byte数组存储的代码
- 如何将PreparedStatement查询得到的结果集存储起来--方法一:采用对象数组