`
zhuyuangping
  • 浏览: 38160 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

转JAVA 数据结构

 
阅读更多

List,Set,Map是否继承自Collection接口?

答:List,Set是,Map不是。

如图:

      Collection

  ├List

  │├LinkedList

  │├ArrayList

  │└Vector

  │ └Stack

  └Set

  Map

  ├Hashtable

  ├HashMap

  └WeakHashMap

Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java JDK不能提供直接继承自Collection的类,Java JDK提供的类都是继承自Collection的"子接口",如:List和Set。

注意:Map没有继承Collection接口,Map提供key到value的映射。一个Map中不能包含相同key,每个key只能映射一个value。Map接口提供3种集合的视图,Map的内容可以被当做一组key集合,一组value集合,或者一组key-value映射。


详细介绍:
List特点:元素有放入顺序,元素可重复
Map特点:元素按键值对存储,无放入顺序
Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的)
List接口有三个实现类:LinkedList,ArrayList,Vector
LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身内存地址的同时还存储下一个元素的地址。链表增删快,查找慢
ArrayList和Vector的区别:ArrayList是非线程安全的,效率高;Vector是基于线程安全的,效率低
Set接口有两个实现类:HashSet(底层由HashMap实现),LinkedHashSet
SortedSet接口有一个实现类:TreeSet(底层由平衡二叉树实现)
Query接口有一个实现类:LinkList
Map接口有三个实现类:HashMap,HashTable,LinkeHashMap
  HashMap非线程安全,高效,支持null;HashTable线程安全,低效,不支持null
SortedMap有一个实现类:TreeMap
其实最主要的是,list是用来处理序列的,而set是用来处理集的。Map是知道的,存储的是键值对
set 一般无序不重复.map kv 结构 list 有序

就个人而言.list 用的比较多. 其次map  最后set 至于什么情况下使用什么集合.看情况了. 也不好说.也没那么绝对.
看了下面的这个就更容易明白了
写一段代码,遍历一个List中的元素
List、Map、Set三个接口,存取元素时,各有什么特点?
Java代码 
 
 
import java.util.*;  
 
public class Test  
{  
public static void main(String [] arge)  
{  
 
List list = new ArrayList();  
list.add(0, "a");  
list.add(1, "b");  
list.add(2, "c");  
list.add(3, "d");  
 
while(Iterator it = list.iterator();it.hasNext())  
{  
   Object element = it.next();  
   System.out.println (element);  
}  
}  
}  
List、Map、Set  
List 通过下标来存取 和值来存取  
Map 键值对应来存取   
set 存取元素是无序的  
 
--------------------------------------------------------------------
  
package com.operation;   
  
import java.util.ArrayList;   
import java.util.HashSet;   
import java.util.Iterator;   
import java.util.List;   
import java.util.Set;   
import java.util.TreeSet;   
  
public class User {   
  
private Integer userId;   
  
private String userName;   
  
private String address;   
  
public User(int userId, String userName, String address) {   
   this.userId = userId;   
   this.userName = userName;   
   this.address = address;   
}   
  
  
public String getAddress() {   
   return address;   
}   
  
  
public void setAddress(String address) {   
   this.address = address;   
}   
  
  
public Integer getUserId() {   
   return userId;   
}   
  
  
public void setUserId(Integer userId) {   
   this.userId = userId;   
}   
  
  
public String getUserName() {   
   return userName;   
}   
  
  
public void setUserName(String userName) {   
   this.userName = userName;   
}   
  
  
public static void main(String[] args) {   
//   Map<Integer, User> map = new TreeMap<Integer, User>();   
//   map.put(1, new User(1,"李伟","beijing"));   
//   map.put(2, new User(2,"王文军","beijing"));   
//     
//   map.put(4, new User(2,"abc","beijing"));   
//   map.put(5, new User(2,"abc","beijing"));   
//     
//     
//     
//   Set<Integer> keys = map.keySet();   
//     
////   Iterator<Integer> it = keys.iterator();   
////   while (it.hasNext()) {   
////    Integer key = it.next();   
////    User user = map.get(key);   
////    System.out.println("key = " + key + "\t" + "value = " + user.getUserName());   
////   }   
//     
//   for (Integer key : keys) {   
//    User user1 = map.get(key);   
//    System.out.println("key = " + key + "\t" + "value = " + user1.getUserName());   
//   }   
     
  
     
   Set<String> set = new HashSet<String>();   
   set.add("a");   
   set.add("b");   
   set.add("c");   
   set.add("d");   
   set.add("d");   
   set.add("d");   
   set.add("d");   
   set.add("uuu");   
   set.add("e");   
     
     
   Iterator<String> it = set.iterator();   
   while (it.hasNext()) {   
    System.out.println(it.next());   
   }   
     
}   
  
}  
分享到:
评论

相关推荐

    Java数据结构和算法

    Java数据结构和算法 Java数据结构和算法 Java数据结构和算法 Java数据结构和算法 Java数据结构和算法 Java数据结构和算法 Java数据结构和算法 Java数据结构和算法

    java数据结构总结

    java数据结构总结java数据结构总结java数据结构总结java数据结构总结java数据结构总结

    Java 数据结构详细教程

    JavaJava 数据结构详细教程Java 数据结构详细教程Java 数据结构详细教程Java 数据结构详细教程Java 数据结构详细教程Java 数据结构详细教程Java 数据结构详细教程Java 数据结构详细教程Java 数据结构详细教程Java ...

    java数据结构经典例题

    java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题...

    java数据结构和算法学习笔记

    中软国际培训的学习笔记,很值得参考。学习java数据结构很有必要看看

    java数据结构总结 思维导图

    java 数据结构总结的思维导图笔记,个人做的非常全,需要的自行下载

    java数据结构java数据结构

    java数据结构java数据结构java数据结构java数据结构java数据结构java数据结构java数据结构java数据结构java数据结构java数据结构

    Java 数据结构 applet演示

    Java 数据结构 applet演示 Java 数据结构 applet演示 Java 数据结构 applet演示 Java 数据结构 applet演示

    Java数据结构和算法.pdf

    Java数据结构和算法.pdf

    Java数据结构课件

    全套详细Java数据结构PPT!Java数据结构课件

    java版数据结构和算法视频

    Java数据结构和算法第七讲.avi Java数据结构和算法第三十一讲.avi Java数据结构和算法第三十七讲.avi Java数据结构和算法第三十三讲.avi Java数据结构和算法第三十九讲.avi Java数据结构和算法第三十二讲.avi Java...

    java数据结构全套

    java数据结构全套

    java图状数据结构转换为树状数据结构

    把字母表示的图状数据结构转换为树状数据结构 采用DefaultMutableTreeNode类的方式建立一个图状数据结构,顶点为字母A、B、C等,你也可以自己设计。可以帮助你把一个复杂的网状关系变成一个条理化的树状关系,并通过...

    Java数据结构与算法

    Java数据结构与算法Java数据结构与算法Java数据结构与算法Java数据结构与算法Java数据结构与算法Java数据结构与算法Java数据结构与算法

    Java数据结构题

    Java数据结构题

    数据结构(JAVA版)

    数据结构JAVA版,是本入门级的教材,可以借鉴下,里面有些例子还不错~

    《Java数据结构与算法》中的applet

    《Java数据结构与算法》中的示例applet,很完整很全面,方便大家交流学习

    java数据结构的习题

    很全面的java数据结构的习题,帮助大家学习java的数据结构,比一般的只懂得java API的程序员更胜一筹

    Java数据结构 线性表,链表,哈希表是常用的数据结构

    Java数据结构 线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构

Global site tag (gtag.js) - Google Analytics