北大青鸟光谷校区

北大青鸟光谷校区

  • 北大青鸟徐东校区
  • 北大青鸟光谷校区
  • 北大青鸟高新校区
  • 荆州青鸟之家
  • 襄阳青鸟之家

17740513250

百日千才

什么是java数据结构-北大青鸟课程

发布日期:2023-03-31来源:武汉北大青鸟武汉校区作者:武汉宏鹏

  【什么是java数据结构-北大青鸟课程】什么是java数据结构?北大青鸟光谷校区java软件开发课程网络在线讲解,请各位有兴趣的朋友为方便你阅览,收藏本页为浏览器页,避免以后查找!今天的课程内容:什么是java数据结构?

一、List接口,有序的Collection接口,能够地控制每个元素插入的位置,允许有相同的元素

1.链表,LinkedList实现了List接口,允许null元素,提供了get()、remove()、insert()方法,没有同步方法

1

2

3

4

5

6

7

8

9

10

11

12

13

14

public void add() {                                   

        LinkedList List = new LinkedList();             

        List.add("link1");

        List.add("link2");

        List.add("link3");

        Iterator it = List.iterator();                  

        while (it.hasNext()) {

            System.out.println(it.next());

        }

        it.remove();                                       

        Iterator it1 = List.iterator();                    

        for (int i = 0; i < List.size(); i++) {

            System.out.println(it1.next());

        }

2.数组列表,ArrayList,可以动态变化容量的数组,非同步的

数组列表中存放的是Object类型,因此在数组列表中存放的对象类型,以其原型的父类代替,提取其中的元素时要进行类型转换

1

2

3

4

5

6

7

8

9

10

11

public static void main(String[] args)

    {

        ArrayList al=new ArrayList();                     

        al.add("name");

        al.add("value");

        al.add("number");

        for(int i=0;i<al.size();i++)

        {

            System.out.println(al.get(i));

        }

}

二、Set接口,不包含重复元素的Collection接口

1.散列集,HashSet,实现了Set接口,非线性同步

与链表和数组列表几乎类似,但在数据处理时,比使用链表进行数据处理花费时间更短,处理大数据时通常使用散列集

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

public static void main(String[] args)

   {

       long time=0;

       HashSet hs=new HashSet();

       ArrayList al=new ArrayList();

       long starttime=System.currentTimeMillis();

       for(int i=0;i<10000;i++)

       {

           hs.add(new Integer(i));

       }

       System.out.println(System.currentTimeMillis()-starttime);

       for(int i=0;i<10000;i++)

       {

           al.add(new Integer(i));

       }

       System.out.println(System.currentTimeMillis()-starttime);  

   }

2.树集,TreeSet,实现了Set接口,实现了排序功能,该集合中的元素默认按升序排列元素

使用树集数据结构的对象,需要实现Comparable接口,树集输出的数据都是经过排序的

三、Map接口,没有继承Collection接口,其提供key到value的映射,Map中不能包含相同的key,每个key只能映射一个value。

1.散列表类,HashTable,继承了Map接口,非空(non-null)的对象都可作为key或value,是同步的

添加数据:put(key,value);

取出数据:get(key);

特点:无序的,因此可以快速查找特定的元素

1

2

3

4

5

6

7

public static void TableTest(){

        Hashtable ht = new Hashtable();

        ht.put("key1", "value1");

        ht.put("key2", "value2");

        String value1=(String)ht.get("key2");

        System.out.println(value1);

    }

构造函数:Hashtable(),初始容量11,负载因子0.75,即散列表中已经有75%的位置被放满,则进行再散列。

负载因子越高(越接近1),则内存使用率越高,元素的寻找时间越长,反之,则内存浪费越多,寻找时间越短

key的对象将通过计算散函数确定与之对应的value位置 ,因此key的对象需要实现hashCode()和equals()方法。

两个对象相同,则它们的hashCode必须相同;两个对象不同,则它们的hashCode不一定不同。

冲突:不同对象的hashCode相同,则称为冲突,冲突将导致操作散列表的时间开销增大。因此要同时复写equals()和hashCode()方法

2.散列映射类,HashMap,与HashTable类似,不是HashMap是非同步的,且允许null

1

2

3

4

5

6

7

8

9

10

11

12

13

public static void Maptest(){

        Map<string string=""> map=new HashMap<string string="">();

        map.put("key1", "value1");

        map.put("key2", "value2");

        map.put("key3", "value3");

        for(Map.Entry<string string=""> entry:map.entrySet()){

            System.out.println(entry.getKey());

            System.out.println(entry.getValue());

        }

        String value1=(String)map.get("key1");

        System.out.println(value1);

    }

</string></string></string>

3.树映像,TreeMap,输出的数据按照关键字排序了

  更多北大青鸟java课程会与你每日分享,记得每日收看我们的java技术在线课程更新@!

关闭

只为了方便您就学 北大青鸟光谷校区 北大青鸟武汉校区

武汉市洪山区珞喻路724号(地铁二号线光谷广场站F口出

Copyright (c) 2006-2023 武汉宏鹏教育咨询有限公司 版权所有 All Rights Reserved.