GVKun编程网logo

List和有什么不一样和清单?(list和有什么不一样和清单一样)

197

此处将为大家介绍关于List和有什么不一样和清单?的详细内容,并且为您解答有关list和有什么不一样和清单一样的相关问题,此外,我们还将为您介绍关于""和""和有什么不一样?、#include和有什么

此处将为大家介绍关于List和有什么不一样和清单?的详细内容,并且为您解答有关list和有什么不一样和清单一样的相关问题,此外,我们还将为您介绍关于" " 和 " " 和有什么不一样?、#include 和有什么不一样 和 #include “文件名”?、#include和有什么不一样 和#include“文件名”?、.* 和有什么不一样?和 .* 正则表达式?的有用信息。

本文目录一览:

List和有什么不一样和清单?(list和有什么不一样和清单一样)

List和有什么不一样和清单?(list和有什么不一样和清单一样)

关于 Java泛型, 我有一个非常基本的问题。我想这两个List<Number>List<? extendsNumber>是同质的。我是对的还是我缺少的基本观念?

答案1

小编典典

泛型类型比较古怪。

<? extendsNumber>表示Number或未知的子类。如果获得这样的值,它将是Number,但是由于您不知道哪个有效,因此无法给出此类型的值。

区别在于参数和返回值。

List<Number> numbers = new ArrayList<Number>();Number n = 1;numbers.add(n); // ok.n = numbers.get(0); // oknumbers.add(1); // ok.List<? extends Number> numbers2 = new ArrayList<Double>();numbers2.add(n); // not okn = numbers2.get(0); // okList<? super Number> numbers3 = new ArrayList<Serializable>();numbers3.add(n); // okn = numbers3.get(0); // not ok.

super在一些地方用来表示类型可以是超级类型。例如

在集合中,此方法表示比较器需要能够比较相同类型或任何超级类型。

public static <T> void sort(List<T> list, Comparator<? super T> c)

这意味着你可以

Comparator<Number> comparesAnyNumbers = ...List<Integer> ints = ...Collections.sort(ints, comparesAnyNumbers);

" " 和 " " 和有什么不一样?

它们都意味着空间,但是有什么区别吗?

答案1

小编典典

一个是不间断空间,另一个是常规空间。不间断的空格意味着该行不应在该点被换行,就像它不会被换行在单词中间一样。

此外,正如 Svend 在他的评论中指出的那样,不间断的空间不会折叠。

#include 和有什么不一样 <filename> 和 #include “文件名”?

#include 和有什么不一样 和 #include “文件名”?

问题:

在 C 和 C ++ 编程语言中,在 include 语句中使用尖括号和引号有什么区别,如下所示?

  1. #include <filename>
  2. #include "filename"

解决方案:

参考一: https://stackoom.com/question/5cH/include 和有什么不一样 - filename - 和 - include - 文件名
参考二: https://oldbug.net/q/5cH/What-is-the-difference-between-include-filename-and-include-filename

#include和有什么不一样 <filename> 和#include“文件名”?

#include和有什么不一样 和#include“文件名”?

在C和C ++编程语言中,在include语句中使用尖括号和引号有什么区别,如下所示?

  1. #include <filename>
  2. #include "filename"

#1楼

这里有一些很好的答案引用了C标准,但忘记了POSIX标准,尤其是c99(例如C编译器)命令的特定行为。

根据开放团体基本规范第7期 ,

-I 目录

更改搜索名称不是绝对路径名的标头的算法,以在查找普通位置之前先查找由目录路径名命名的目录 。 因此,应首先在带有#include行的文件目录中搜索名称包含在双引号(“”)中的标题,然后在-I选项命名的目录中进行搜索,然后在通常的位置中进行搜索。 对于名称括在尖括号(“ <>”)中的标头,应仅在-I选项命名的目录中搜索标头,然后在通常的位置中搜索。 -I选项中命名的目录应按指定顺序搜索。 实现应在单个c99命令调用中至少支持此选项的十个实例。

因此,在符合POSIX的环境中,使用符合POSIX的C编译器, #include "file.h"可能会首先搜索./file.h ,其中. 是包含#include语句的文件所在的目录,而#include <file.h>可能会首先搜索/usr/include/file.h ,其中/usr/include是系统定义的常用位置标头(POSIX似乎未定义)。


#2楼

  • #include <>用于预定义的头文件

如果头文件是预定义的,那么您只需将头文件名写在尖括号中,看起来就像这样(假设我们有一个预定义的头文件名iostream):

#include <iostream>
  • #include " "用于程序员定义的头文件

如果您(程序员)编写了自己的头文件,则应在头文件名中用引号引起来。 因此,假设您编写了一个名为myfile.h的头文件,那么这是一个如何使用include指令包括该文件的示例:

#include "myfile.h"

#3楼

简单的通用规则是使用尖括号包含编译器随附的头文件。 使用双引号包括其他任何头文件。 大多数编译器都是这样做的。

1.9 —头文件更详细地说明了预处理程序指令。 如果您是新手程序员,那么该页面应该可以帮助您理解所有内容。 我从这里学到了它,并且在工作中一直在关注它。


#4楼

实际上,区别在于预处理器搜索包含文件的位置。

对于#include <filename> ,预处理器通常以实现依赖方式进行搜索,通常在编译器/ IDE预先指定的搜索目录中进行搜索。 此方法通常用于包括标准库头文件。

对于#include "filename" ,预处理器首先在与包含指令的文件相同的目录中搜索,然后遵循用于#include <filename>格式的搜索路径。 此方法通常用于包括程序员定义的头文件。

有关搜索路径的GCC 文档中提供了更完整的描述。


#5楼

此处的许多答案都集中在编译器将搜索以查找文件的路径上。 尽管这是大多数编译器的工作方式,但是允许使用标准标头的效果对符合标准的编译器进行预编程,并将#include <list>视为一个开关,并且它根本不需要作为文件存在。

这不是纯粹的假设。 至少有一个编译器可以这样工作。 建议仅将#include <xxx>与标准标头一起使用。

.* 和有什么不一样?和 .* 正则表达式?

.* 和有什么不一样?和 .* 正则表达式?

我正在尝试使用正则表达式将字符串分成两部分。该字符串的格式如下:

text to extract<number>

我一直在使用(.*?)<并且<(.*?)>工作正常,但是在稍微阅读了正则表达式之后,我才开始想知道为什么我需要?在表达式中。我只是在通过这个网站找到它们之后才这样做,所以我不确定有什么区别。

答案1

小编典典

这是贪婪量词和非贪婪量词之间的区别。

考虑输入101000000000100

使用1.*1,*是贪心的 - 它会一直匹配到最后,然后回溯直到它可以匹配1,留下1010000000001.
.*?是非贪婪的。*将不匹配任何内容,但随后将尝试匹配额外字符,直到匹配1,最终匹配101.

所有量词都有一个非贪婪模式:.*?, .+?, .{2,6}?, 和 even .??

在您的情况下,类似的模式可能是<([^>]*)>- 匹配除大于号以外的任何字符(严格来说,它匹配除>中间<和之外的零个或多个字符>)。

请参阅 量词备忘单

关于List和有什么不一样和清单?list和有什么不一样和清单一样的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于" " 和 " " 和有什么不一样?、#include 和有什么不一样 和 #include “文件名”?、#include和有什么不一样 和#include“文件名”?、.* 和有什么不一样?和 .* 正则表达式?的相关信息,请在本站寻找。

本文标签: