Java 之路 (十六) -- 泛型下(通配符、类型擦除、泛型的限制)
版权声明:本文出自 whdAlive 的博客,转载必须注明出处 https://blog.csdn.net/whdAlive/article/details/81751208 7. 通配符 通配符,即 “?”,用来表示未知类型。 通配符可用作各种情况:作为参数,字段或局部变量的类型;有时也作为返回类型;通配符从不用作泛型方法调用、泛型类实例创建或超类型的类型参数。 7.1 上限有界的通配符 使用上限通配符来放宽对变量的限制。 声明上限通配符的语法:<? extends 上限> 举个例子: pu
Java 之路 (十七) -- 数组(基本概念与使用、数组与泛型、数组操作、Arrays 类)
版权声明:本文出自 whdAlive 的博客,转载必须注明出处 https://blog.csdn.net/whdAlive/article/details/81777917 学完复杂的泛型,来学点简单的。本文介绍 Java 数组的相关知识。 1. 基本概念 数组是一个容器对象,它包含固定数量的单个类型的值。 创建数组时,将建立数组的长度。 创建后,其长度是固定的。 数组中的每个项成为元素,每个元素由其数组索引访问。 举个简单例子: class ArrayDemo {
public s
Java 之路 (十八) -- 容器深入研究(容器接口,实现类特性及对比)
版权声明:本文出自 whdAlive 的博客,转载必须注明出处 https://blog.csdn.net/whdAlive/article/details/81809426 1. 接口 首先,放上层次图(少了Queue)。 Collection 继承了 Iterator 接口(事实上,该接口是所有集合的总接口),定义了集合的遍历操作。 前面我们已经介绍过集合类的基础知识,这里就简单回顾以下: Collection:Collection 是一个接口,没有直接实现类。它用来传递集合并在需要最大通
Java 之路 (十九) -- 注解(语法、预定义注解、元注解、重复注解、注解与反射)
版权声明:本文出自 whdAlive 的博客,转载必须注明出处 https://blog.csdn.net/whdAlive/article/details/81978089 前言 官方注解的定义如下: 注解(一种元数据形式)提供有关不属于程序本身的程序的数据。注解对它们注解的代码的操作没有直接影响。 注解有许多用途,其中包括: 编译器的信息 - 编译器可以使用注解来检测错误或抑制警告。 编译时和部署时处理 - 软件工具可以处理注解信息以生成代码,XML文件等。 运行时处理 - 可以在运行时检
Java 之路 (二十) -- Java I/O 上(BIO、文件、数据流、如何选择I/O流、典型用例)
版权声明:本文出自 whdAlive 的博客,转载必须注明出处 https://blog.csdn.net/whdAlive/article/details/82019977 前言 Java 的 I/O 类库使用 流 这个抽象概念,代表任何有能力产出数据的数据源对象或者是有能力接收数据的接收端对象。流 屏蔽了实际的 I/O 设备中处理数据的细节。 数据流是一串连续不断的数据的集合,简单理解的话,我们可以把 Java 数据流当作是 管道里的水流。我们只从一端供水(输入流),而另一端出水(输出流)
LeetCode 高级 - Remove Invalid Parentheses
版权声明:本文出自 whdAlive 的博客,转载必须注明出处 https://blog.csdn.net/whdAlive/article/details/82194286 Remove Invalid Parentheses 删除最小数量的无效括号,使得输入的字符串有效,返回所有可能的结果。 说明: 输入可能包含了除 ( 和 ) 以外的字符。 示例 1: 输入: "()())()"
输出: ["()()()", "(())()"] 示例 2: 输入: "(a)())()"
输出: ["(a
LeetCode 随机 - 全排列 II
版权声明:本文出自 whdAlive 的博客,转载必须注明出处 https://blog.csdn.net/whdAlive/article/details/89028398 给定一个可包含重复数字的序列,返回所有不重复的全排列。 示例: 输入: [1,1,2]
输出:
[
[1,1,2],
[1,2,1],
[2,1,1]
]
代码 class Solution {
public static List<List<Integer>> permuteUnique(int[
LeetCode 随机 - Z 字形变换
版权声明:本文出自 whdAlive 的博客,转载必须注明出处 https://blog.csdn.net/whdAlive/article/details/89028504 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R
E T O E S I I G
E D H N
之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIR
D5.3 编写一个程序,可以一直接收键盘字符.要求如下,
如果是小写字符就输出对应的大写字符, 如果接收的是大写字符,就输出对应的小写字符, 如果是数字不输出,输入@停止. #include <stdio.h> #include<stdlib.h> #include <ctype.h> #define isBigLetter(ch) (ch >='A' && ch<='Z')//用宏定义 宏的使用1查找,2替换. int isSmallLetter(char ch){ return ch <= 'z' && ch >= 'a'; //类似于函数,但不
路由器OSPF的基本概念与工作过程
OSPF是基于开放标准的链路状态路由选择协议,它完成各路由选择协议算法的两大主要功能:路径选择和路径交换。在共同管理域下的一组运行相同路由选择协议的路由器的集合为一个自治系统(autonomoussystem,AS)。在网络中,一个AS是一个有权决定本系统使用哪种路由协议的单位,它可以是一个企业,一座城市,随着网络的发展,对AS的定义已经不是十分精准了,网络的发展使网络之间经常出现网络合并情况,导
D5.4 数N在任意进制下每一位的遍历
由"水仙花"数出发,进而考虑回文数(例如,121,1234321...),得到遍历一个数的每一位的方法. for(i=a ; i<=b ; i++) 其中 i 在循环中完成了[a,b]的遍历; for(i=a ; i<=b ; i++) 其中 arr[i] 完成了数组一段的遍历; for(i=n ; i ; i/=10 ) 其中 i % 10 完成了对 n 的每一位的遍历; for(i=n ; i ; i/=sn) 其中i % sn 完成了对n在sn进制下每一位的遍历. 例1,求0-10000
D6.1 使用函数实现两个数的交换
#include<stdio.h> void Swap(int* x, int* y){ int tmp = 0; tmp = *x; *x = *y; *y = tmp; } int main(){ int num1 = 10; int num2 = 20; Swap(&num1, &num2); printf("num1=%d num2=%d", num1, num2); system("pause"); }
D6.2 实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定, 输入9,输出9*9口诀表,输入12,输出12*12的乘法口诀表
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { int input = 0; int i = 1; int j = 1; int k = 0; printf("请输入你想打印的行数\n"); scanf("%d", &input); for (i = 1; i <= input; i++) { for (j = 1; j <= i; j++) { k = i*j; printf("%d*%d=%2d ", j, i,
D6.3 实现一个函数判断year是不是润年
能被4整除且不能被100整除 或者 能被400整除的是闰年 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include<stdlib.h> int leap_year(int year){ if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)){ return 1; } else{ return 0; } } int main(){ int year; int ret
D6.4 实现一个函数,判断一个数是不是素数。
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<math.h> int prime_num(int num){ int i, k; k = sqrt(num); for (i = 2; i <= k; i++){ if (num % i == 0){ //循环是用来判断不是素数的! return 0; } } return 1; //除去不是素数的就是素数! } int main(){
D7.1 递归和非递归分别实现求第n个斐波那契数。
斐波那契数,亦称之为斐波那契数列, 又称黄金分割数列、费波那西数列、费波拿契数、费氏数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波那契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*),用文字来说,就是斐波那契数列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加。 递归实现: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <st
D7.2 编写一个函数实现n^k,使用递归实现
递归实现: 首先在函数内部需要判断k是否为0(指数为0),当k既不为0也不为1时使用递归, 判断的两个条件即为递归的出口!(递归的出口非常重要,如果递归没有出口后果非常严重! #include <stdio.h> int fun(int n, int k) //求n的k次方 { int sum; if (k == 0) { sum = 1; } else { sum = n*fun(n, k - 1); } return sum; } int main() { printf("%d\n", f
重大突破!中国年轻博士一作登Nature封面,仿细胞集群机器人问世!
导读 近日,Nature封面刊登了一篇重磅研究成果——仿细胞集群机器人系统,实现了集群机器人的自主控制,这成为工程学领域一项重大突破!该机器人系统可以在各个部件机器人随机运动的情况下导致确定性的行为,这一切就像在生命系统中发生的那样。该论文一作为中国籍年轻博士。 该论文作者,中国籍年轻博士李曙光本科毕业于西安的西北工业大学,获得机械与航空航天工程学士学位,目前在哈佛大学任博士后研究员。 集群机器人很早就出现在了大众的视野中,但是其规模下的可控制性一直令研究人员头疼。 在生物系统中,不乏通过随机
DeepMind将推出首款商业产品:30秒准确诊断一系列眼疾
据外媒报道,英国人工智能集团DeepMind已打造出一款能够实时诊断复杂眼疾的设备的产品原型。这是Deepmind作为Alphabet旗下公司迈向首款医疗设备的重要一步。 DeepMind, the British artificial intelligence group, has built a working prototype of a device that can diagnose complex eye diseases in real time, in a major step
周排行