泛型通配符当使用泛型类或者接口时,传递的数据中,泛型类型不确定,可以通过通配符<?>表示。但是一旦使用泛型的通符后,只能使用Object类中的共性方法,集合中元素自身方法无法使用。通配符基本使用泛型的通配符:不知道使用什么类型来接收的时候,此时可以使用?,?表示未知通配符。此时只能
ArrayList集合 java.util.ArrayList-集合数据存储的结构是数组结构。元素增删慢,查找快,由于日常开发中使用最多的功能为查询数据、遍历数据,所以ArrayList是最常用的集合。 许多程序员开发时非常随意地使用ArrayList完成任何需求,并不严谨,这种用法是不提倡的。 Java.util.ArrayList是
迭代器的实现原理 增强for循环 增强for循环:专门用来遍历数组和集合的,它的内部原理其实是个iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作 格式: for(元素的数据类型 变量名:集合名/数组名){ //写操作代码 } 它用于遍历Collection和数组,通常只进行
练习---斗地主案例分析 按照斗地主的规则,完成洗牌发牌的动作。具体规则: 使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。 练习---斗地主案例代码实现 public static void main(String[] args) { //1.准备牌 //定义一个存
泛型的概念 在前面学习集合时,我们都知道集合中是可以存放任意对象的,只要把对象存储集合后,那么这时他们都会被提升成Object类型。当我们在取出每一个对象,并且进行相应的操作,这时必须采用类型转换。 使用泛型的好处 创建集合对象,不使用泛型 好处: 集合不使用泛型,黑默
案例介绍 按照斗地主的规则,完成洗牌的动作 具体规则: 使用54张牌打乱顺序,三个玩家参与游戏,三个人交替摸牌,每个人17张牌后,最后三张留作底牌 案例分析 准备牌: 牌可以设计一个ArrayList每个字符串为一张牌 每张牌由花色数字两部分组成,我们可以使用花色集合与数字集合嵌套迭代完成每张
interface作为方法参数和返回值类型 当接口作为方法的参数时,需要传递什么呢?当接口作为方法的返回值类型时,需要返回什么呢?对,其实都是它的 子类对象。 ArrayList 类我们并不陌生,查看API我们发现,实际上,它是 java.util.List 接口的实现类。所 以,当我们看见 List 接口作为参数或者返
泛型的概念 泛型:是一种未知的数据类型,当我们不知道使用什么数据类型的时候,可以使用泛型 泛型也可以看出是一个变量,用来接收数据类型 E e:Element 元素 T t:Type 类型 ArrayList集合在定义的时候,不知道集合中都会存储什么类型的数据,所以类型使用泛型 E:未知的数据类
创建集合对象,使用泛型 好处: 1.避免了类型转换的麻烦,存储的是什么类型,取出的就是什么类型 2.把运行期异常(代码运行之后会抛出的异常),提升到了编译期(写代码的时候会报错) 弊端: 泛型是什么类型,只能存储什么类型的数据 代码举例: private static void show1()
接口作为方法的参数和或返回值 当接口作为方法的参数时,需要传递什么呢?当接口作为方法的返回值类型时,需要返回什么呢?对,其实都是它的 子类对象。 ArrayList 类我们并不陌生,查看API我们发现,实际上,它是 java.util.List 接口的实现类。所 以,当我们看见 List 接口作为参数或者返回值类
ArrayList集合的常用方法和遍历 Arraylist当中的常用方法有: public boolean add(E e):向集合当中添加元素,参数的类型和泛型一致。返回值代表添加是否成功 备注:对于ArrayList集合来说, add添加动作一定是成功的,所以返回值可用可不用。 但是对于其他集合(今后学习)来说,add添加动作不
发红包案例 视图: 发红包的逻辑,三要素: 返回值:ArrayList<Integer> 方法名称:send 参数列表:1.总共发多少钱 int totalMoney 2.分成多少份 int count public ArrayList<Integer> send(int totalMoney , int count){ //..... } 收红包的逻
接口作为方法的参数或返回值 public class DEM { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); ArrayList<String> aa = aa(list); for (String s : aa) { System.out.println(s);
public interface OpenMode { /** * 将totalMoney分成count份,然后保存在ArrayList中,返回即可 * @param totalMoney 总金额 * @param totalCount 红包个数 * @return */ ArrayList divide(double totalMoney,int totalCount); } public class RedPacketFrame implements OpenMode{
1.问题产生原因 最近在写leetcode的题目https://leetcode.cn/problems/subsets/时,在评论区看到了一种解法,其中出现了 List<Integer> newNumber = new ArrayList<>(result); //result为List<Integer>类型 的代码语句,一般来说ArrayList的初始化为 List<Integer> some=new ArrayList
什么是 Stream? Stream(流)是一个来自数据源的元素队列并支持聚合操作 <strong元素队列< strong="">元素是特定类型的对象,形成一个队列。 Java中的Stream并不会存储元素,而是按需计算。 数据源 流的来源:可以是集合,数组,I/O channel, 产生器generator 等。 聚合操作:类似SQL语
ArrayList、LinkedList、Vector者的异同 相同点: 三个类都是实现了List接口; 存储数据的特点相同:存储序的、可重复的数据. 不同点: ArrayList:作为List接口的主要实现类;线程不安全的,效率高;底层使用Object[] elementData存储. LinkedList:对于频繁的插入、删除
ArrayList分析3 : 删除元素 转载请注明出处:https://www.cnblogs.com/funnyzpc/p/16421743.html 对于集合类删除元素是常有的需求,非常常见;如果是惯常的删除方式就没有写本篇博客的必要了,本篇博客不光分析删除可能导致的问题,也会从源码层面分析为何需要借用迭代器删除,同时也会给出不
ArrayList分析2 : Itr、ListIterator以及SubList中的坑 转载请注明出处:https://www.cnblogs.com/funnyzpc/p/16409137.html 一.不论ListIterator还是SubList,均是对ArrayList维护的数组进行操作 首先我得说下ListIterator是什么,ListIterator 与Iterator均是迭代器接口,对应ArrayLis
public static void main(String[] args) { List<String> one = new ArrayList<>(); one.add("jim"); one.add("tom"); one.add("jack"); // 集合二 List<String> two = new Arr
ArrayList集合存储基本数据类型 集合中的泛型只能填写引用数据类型 不能填写基本数据类型 集合里面保存的都是地址值 如果希望向集合ArrayList当中存基本数据类型,必须使用基本数据类型的包装类 基本数据类型 包装类 int Integer long Long byte Byte short Short c
综合案例:群主发普通红包 群主发普通红包。某群有多名成员,群主给成员发普通红包。普通红包的规则: 1.群主的一笔金额,从群主余额中扣除,平均分成n等份,让成员领取 2.成员领取红包后,保存到成员的余额中 请根据描述,完成案例中所有类的定义以及指定类之间的继承关系,并完成发红包的操作。
ArrayList分析1-循环、扩容、版本 转载请注明出处 https://www.cnblogs.com/funnyzpc/p/16407733.html 前段时间抽空看了下ArrayList的源码,发现了一些有意思的东东,真的是大受裨益哈,尤其是版本问题
package com.generic; import org.junit.Test; import java.util.*; /** * *泛型的使用 * 1.jdk 5.日新增的特性 * 2.在集合中使用泛型: * 总结: * (1).集合接口或集合类在jdk5.日时都修改为带泛型的结构。 * (2).在实例化集合类时,可以指明具体
像集合添加随机数 存储自定义对象