1、简单谈谈数组的含义、优缺点。
1.1什么是数组:在连续的内存空间中保存同一类型的数据集合。
1.2数组的优点:数组本身有下标的概念,查询数据时根据下标进行查询,查询效率高。 像算法那样分成两部分查找数据,其时间复杂度为o(1)。
1.3数组的缺点:数组占用相对较多的内存,需要连续的存储空间,添加和删除数组时需要向前和向后移动。 另外,不能动态扩展操作数组,存在不恰当使用会导致索引越界的异常。
公共类测试1 {
publicstaticvoidmain (字符串[ ] args ) {
int [ ] a={ 1,2,6,6,5 }; //数组
HashMapInteger,Integer hashMap=new HashMap (;
for(intI=0; i a.length; I ) {
if(Hashmap.containskey(a[I] ) ) )
intval=Hashmap.get(a[I];
Hashmap.put(a[I],val 1;
}else {
Hashmap.put(a[I],1;
}
}
system.out.println(Hashmap;
}
}
2、链表,这里谈单向链表
2.1链表这一数据结构的设计有头尾概念,相应的方法是getLast (和getFirst )获取链表头尾节点的值,链表中有节点概念,每个节点有自身节点的数据和下一个节点的地址
2.2链表的优点:链表中的一些节点存储下一个节点的地址指针字段,所以根据地址进行删除和更新比较快。
2.3链表的缺点:从链表查询数据时,每次都会从链表的第一个节点一直找到链表的末尾节点,所以查询效率相对较低。
公共类测试3 {
publicstaticvoidmain (字符串[ ] args ) {
linkedliststringlinkedlist=new linked list (;
linkedlist.add('a );
linkedlist.add('b );
linkedlist.add('c );
for (字符串字符串3360链接列表) {
system.out.println (字符串;
}
system.out.println (链接列表. get last ();
system.out.println (链接列表. get first ();
}
}
综上所述,在实际的开发APP应用中,对数据的查询操作较多时,建议在这两种数据结构中使用数组;对数据的添加和删除较多;对查询效率的要求不高时,建议使用单向链表。 期待您的指正。