java基础(十五)集合(二)

这里有我之前上课总结的一些知识点以及代码大部分是老师讲的笔记 个人认为是非常好的,,也是比较经典的内容,真诚的希望这些对于那些想学习的人有所帮助!

由于代码是分模块的上传非常的不便。也比较多,讲的也是比较清晰的!如果你有需要可以在评论中留下您的邮箱我看到一定会免费发给你的!感谢这个平台让我们大家共同进步吧!! 记住 程序员是无私的!!!

也非常欢迎到我的博客内观看 博客地址:http://www.cnblogs.com/duscl/

/*
1:List的子类(掌握)
    (1)List的子类特点
        ArrayList:
            底层数据结构是数组,查询快,增删慢
            线程不安全,效率高
        Vector:
            底层数据结构是数组,查询快,增删慢
            线程安全,效率低
        LinkedList:
            底层数据结构是链表,查询慢,增删快
            线程不安全,效率高
    (2)ArrayList
        A:没有特有功能需要学习
        B:案例
            a:ArrayList存储字符串并遍历
            b:ArrayList存储自定义对象并遍历
    (3)Vector
        A:有特有功能
            a:添加
                public void addElement(E obj)        --    add()
            b:获取
                public E elementAt(int index)        --    get()
                public Enumeration<E> elements()    --  iterator()
        B:案例
            a:Vector存储字符串并遍历
            b:Vector存储自定义对象并遍历
    (4)LinkedList
        A:有特有功能
            a:添加
                addFirst()
                addLast()
            b:删除
                removeFirst()
                removeLast()
            c:获取
                getFirst()
                getLast()
        B:案例
            a:LinkedList存储字符串并遍历
            b:LinkedList存储自定义对象并遍历
    (5)案例:
        A:去除集合中的多个字符串的重复元素
            如果字符串的内容相同,即为重复元素
        B:去除集合中的多个自定义对象的重复元素
            如果自定义对象的成员变量值都相同,即为重复元素
        C:用LinkedList模拟一个栈数据结构的集合类,并测试。
            你要定义一个集合类,只不过内部可以使用LinkedList来实现。

2:泛型(掌握)
    (1)泛型概述
        是一种把明确类型的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型。
    (2)格式:
        <数据类型>
        注意:该数据类型只能是引用类型。
    (3)好处:
        A:把运行时期的问题提前到了编译期间
        B:避免了强制类型转换
        C:优化了程序设计,解决了黄色警告线问题,让程序更安全
    (4)泛型的前世今生
        A:泛型的由来
            Object类型作为任意类型的时候,在向下转型的时候,会隐含一个转型问题
        B:泛型类
        C:泛型方法
        D:泛型接口
        E:泛型高级通配符
            ?
            ? extends E
            ? super E
    (5)我们在哪里使用呢?
        一般是在集合中使用。

3:增强for循环(掌握)
    (1)是for循环的一种
    (2)格式:
        for(元素的数据类型 变量名 : 数组或者Collection集合的对象) {
            使用该变量即可,该变量其实就是数组或者集合中的元素。
        }
    (3)好处:
        简化了数组和集合的遍历
    (4)弊端
        增强for循环的目标不能为null。建议在使用前,先判断是否为null。

4:静态导入(了解)
    (1)可以导入到方法级别的导入
    (2)格式:
        import static 包名....类名.方法名;
    (3)注意事项:
        A:方法必须是静态的
        B:如果多个类下有同名的方法,就不好区分了,还得加上前缀。
            所以一般我们并不使用静态导入,但是一定要能够看懂。

5:可变参数(掌握)
    (1)如果我们在写方法的时候,参数个数不明确,就应该定义可变参数。
    (2)格式:
        修饰符 返回值类型 方法名(数据类型... 变量) {}

        注意:
            A:该变量其实是一个数组名
            B:如果一个方法有多个参数,并且有可变参数,可变参数必须在最后
    (3)Arrays工具类的一个方法
        asList()把数组转成集合。
        注意:这个集合的长度不能改变。

6:练习(掌握)
    A:集合的嵌套遍历
    B:产生10个1-20之间的随机数,要求随机数不能重复
    C:键盘录入多个数据,以0结束,并在控制台输出最大值

7:要掌握的代码
    集合存储元素,加入泛型,并可以使用增强for遍历。

*\
时间: 2024-11-08 03:33:54

java基础(十五)集合(二)的相关文章

Java基础十五

1 ArrayList类 1.1 ArrayList类概述 底层数据结构是数组,查询快,增加和删除慢. 线程不安全,效率高. 1.2 ArrayList的应用 示例: package com.xuweiwei; import java.util.ArrayList; import java.util.List; public class ArrayListDemo1 { public static void main(String[] args) { List<String> list = n

JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题

JAVA基础再回首(二十五)--Lock锁的使用.死锁问题.多线程生产者和消费者.线程池.匿名内部类使用多线程.定时器.面试题 版权声明:转载必须注明本文转自程序员杜鹏程的博客:http://blog.csdn.net/m366917 我们来继续学习多线程 Lock锁的使用 虽然我们可以理解同步代码块和同步方法的锁对象问题,但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁,为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对象Lock Lock void lock():获取锁 v

Java基础十二--多态是成员的特点

Java基础十二--多态是成员的特点 一.特点 1,成员变量. 编译和运行都参考等号的左边. 覆盖只发生在函数上,和变量没关系. Fu f = new Zi();System.out.println(f.num);//是父类,答案是3 2,成员函数(非静态). 编译看左边,运行看右边. 因为成员函数存在覆盖特性. Fu f = new Zi();//f.show();输出的是子类里面的show方法 3,静态函数. 编译和运行都看左边. 静态函数不具备多态性,多态性是对象的多态性,然后静态函数不涉

Java基础十--接口

Java基础十--接口 一.接口的定义和实例 1 /* 2 abstract class AbsDemo 3 { 4 abstract void show1(); 5 abstract void show2(); 6 } 7 8 当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用 9 另一种形式定义和表示,就是 接口 interface. 10 */ 11 12 //定义接口使用的关键字不是class,是interface. 13 //interface编译后还是.class文件,其实本质

Bootstrap&lt;基础十五&gt; 输入框组

Bootstrap 支持的另一个特性,输入框组.输入框组扩展自 表单控件.使用输入框组,可以很容易地向基于文本的输入框添加作为前缀和后缀的文本或按钮. 通过向输入域添加前缀和后缀的内容,您可以向用户输入添加公共的元素.例如,可以添加美元符号,或者在 Twitter 用户名前添加 @,或者应用程序接口所需要的其他公共的元素. 向 .form-control 添加前缀或后缀元素的步骤如下: 把前缀后后缀元素放在一个带有 class .input-group 的 <div> 中. 接着,在相同的 &

Java基础面试:集合、内部类、线程

package test; import java.util.Hashtable; import java.util.Map; public class test { public static String change(String param){ param=null; return param; } public static void main(String[] args) { String param1="p1"; param1=change(param1); Map ta

java基础巩固系列(二):Integer与int之间的区别

在JDK1.5之后引入了自动装箱(autoboxing)与自动拆箱(unboxing),这让很多对java的初学者感到很疑惑,我刚才也是其中一员. 首先,有一些基本的概念需要了解: 1.Ingeter是int的包装类,int的初值为0,Ingeter的初值为null. 2.Integer是一个类,用Integer声明一个变量是一个对象类型(或者说引用类型):int是基本类型,用int声明的变量是非对象类型,即不能在其上调用方法. 3."=="作用于对象上的时候,其比较的是对象的引用本身

java基础学习总结——线程(二)

永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! java基础学习总结——线程(二) 一.线程的优先级别 线程优先级别的使用范例: 1 package cn.galc.test; 2 3 public class TestThread6 { 4 public static void main(String args[]) { 5 MyThread4 t4 = new MyThread4(); 6 MyThread5 t5 = new MyThread5(); 7 Thread t1

Py西游攻关之基础数据类型(五)-集合

Py西游攻关之基础数据类型 - Yuan先生 https://www.cnblogs.com/yuanchenqi/articles/5782764.html 八 集合(set) 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 集合(set):把不同的元素组成一起形成集合,是python基本的数据类型. 集合元素(set elements):组成集合的成员(不可重复) li=[1,2,'a','b

java基础5:集合

关于Java基础的文章,我觉得写得还可以,以前发在了我其它的博客了,肯定是原创,现在再分享给大家出来. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------