计算机科学:列表

学习计算机科学的概念,示例问题和解释

大学导师应用商店 大学导师安卓商店

例子问题

例子问题1:列表

考虑下面的代码:

myPhilosophers = new ArrayList();

myPhilosophers.add(“弗雷格”);

myPhilosophers.add(“胡塞尔”);

myPhilosophers.add(“黑格尔”);

myPhilosophers.add(“法案”);

myPhilosophers.add(弗雷德里克);

For (int I = 0;i < myPhilosophers.size();我+ +){

字符串s = myPhilosophers.get(i);

if(s.charAt(0) >= 'H' || s.charAt(3) < 'd') {

myPhilosophers。(我,s.toUpperCase ());

System.out.println (myPhilosophers);

上面代码的输出是什么?

可能的答案:

[弗雷格,胡塞尔,黑格尔,比尔,弗雷德里克]

[弗雷格,胡塞尔,黑格尔,比尔,弗雷德里克]

[弗雷格,胡塞尔,黑格尔,比尔,弗雷德里克]

[弗雷格,胡塞尔,黑格尔,比尔,弗雷德里克]

[弗雷格,胡塞尔,黑格尔,比尔,弗雷德里克]

正确答案:

[弗雷格,胡塞尔,黑格尔,比尔,弗雷德里克]

解释

考虑循环中的逻辑。if语句将被到达,如果你:

  1. 第一个角色是什么H或者在字母表中更晚(大写字母)。
  2. 有第四个字符小于d

第一种情况适用于“胡塞尔”和“黑格尔”。然而,第二条并不适用于任何人——甚至不适用于“弗雷德里克”d平等的d,不比它少!

例子问题1:列表

考虑下面的代码:

String [] db ={“哈维”、“普鲁塔克”,“弗雷格”,“Radulphus”};

ArrayList names = new ArrayList();

For (int I = 0;I < 12;我+ +){

的名字。Add (db[i % db.length]);

For (int I = 0;I < 12;我+ +){

如果(names.get (i) .equals(“弗雷格”)){

names.remove(我);

上面代码中的错误是什么?

可能的答案:

该列表将耗尽机器上的所有内存。

在这两个循环中有一个无限循环。

. get方法有bug,很可能崩溃。最好使用an迭代器

该列表将在第二个循环中溢出它的下标。

没有bug。

正确答案:

该列表将在第二个循环中溢出它的下标。

解释

在第二个循环中,当您删除其中一个项时,将使ArrayList少了一个元素。这意味着如果您尝试遍历索引11,您将在某个时候收到一个错误,因为列表将“收缩”。这就像一个数组越界错误,尽管它将是一个IndexOutOfBoundsException异常。

问题11:常用数据结构

考虑下面的代码:

公共静态类Circle {

私人双半径;

公圆(双r) {

半径= r;

getArea() {

返回半径*半径* Math.PI;

public static void main(String[] args) {

ArrayList circles = new ArrayList();

For (int I = 0;I < 10;我+ +){

圆圈。add(new Circle(i + 4 * 2));

下面哪个表示遍历列表的代码为了输出其中包含的圆的面积?

可能的答案:

For (int I = 0;I < circles.length;我+ +){

System.out.println(圈[我].getArea ());

For (int I = 0;I < circles.size();我+ +){

System.out.println(圈[我].getArea ());

For (int I = 0;I < circles.size();我+ +){

.getArea System.out.println(圈[我]. get () ());

For (int I = 0;I < circles.size;我+ +){

System.out.println (circles.get()[我].getArea ());

For (int I = 0;I < circles.size();我+ +){

System.out.println (circles.get (i) .getArea ());

正确答案:

For (int I = 0;I < circles.size();我+ +){

System.out.println (circles.get (i) .getArea ());

解释

在这些答案中,只有两个问题需要考虑。一方面,看看循环控制语句。它是某种变体:

circle.size ()

而且

circles.length

列表类型时,您需要使用该方法尺寸()长度(用于数组)。类中提取元素的一种方法ArrayList类型是使用的. get方法。你必须使用这个,而不是括号[]用于数组。

例子问题2:列表

下列哪一项不是数组列表的有效声明?

可能的答案:

ArrayList list = new ArrayList();

ArrayList list = new ArrayList();

List List = new ArrayList();

List List = new ArrayList();

ArrayList list = new ArrayList();

正确答案:

ArrayList list = new ArrayList();

解释

数组列表是对象的列表,因此不能存储基本类型。如果你想在数组列表中存储基本类型,必须使用容器对象,如Double或Integer。对象引用类型List是ArrayList对象的有效引用类型。

例子问题1:列表

下列哪个是在Java中数组类和数组列表类之间的区别?

可能的答案:

数组既可以存储基本类型,也可以存储对象,而数组列表只能存储对象。

您必须通过调用类似于的命令手动向Array添加内容My_array [some_number] = some_value.对于数组列表,你使用add ()方法。

数组在创建时有固定的大小,而数组列表可以根据需要增长。

所有其他的答案选择都是Java中的数组和数组列表之间的区别。

要查找数组中的点数,需要追加长处直到最后。要查找数组列表中的位置数,可以使用尺寸()方法。

正确答案:

所有其他的答案选择都是Java中的数组和数组列表之间的区别。

解释

在Java中,Array是一个固定长度的数据结构,而ArrayList是一个可变长度的集合类(其他集合类成员包括HashMap和HashSet)。这意味着数组一旦创建就不能改变它的大小;必须建立一个全新的阵列。数组列表可以随意改变大小。

数组可以引用这两种原语(比如int)和类型(比如整数)。数组列表只能引用类型,不能引用原语。通过一个叫做"Autoboxing"的方法,看起来数组列表存储了一个原语,但它真正做的是自动用它喜欢的类型屏蔽原语,这样它就可以和数组列表一起工作。

在创建Array的过程中长处值被赋值,所以每当你追加长处到数组的末尾,你会得到数组的长度(对于给定的数组,它永远不会改变)。对于数组列表,使用.size ()函数,返回数组列表的长度。因为数组列表的大小是可变的,所以它是一个函数(这就是括号在末尾的原因)。

Java为数组列表提供了add()函数,顾名思义,它将参数添加到数组列表中。另一方面,数组没有添加元素的函数。要向数组中添加东西,你可以调用类似这样的方法:

Int [] my_array = new Int [10];
My_array [0] = 5;

问题91:标准数据结构

写一个程序,遍历这个数据结构并打印数据(选择最佳答案):

List> listOflistOfStrings = new ArrayList>();

可能的答案:

for (List l: listOflistOfStrings) {

List listOfStrings = l;

for (List s: l) {

System.out.println(年代);

for (List l: listOflistOfStrings) {

List listOfStrings = l;

for(字符串s: l) {

System.out.println(年代);

For (int I = 0;i < listOflistOfStrings.size();我+ +){

List listOfStrings = listOflistOfStrings.get(i);

For (int j = 0;j < listOflistOfStrings.size();j + +) {

System.out.println (listOfStrings.get (j));

For (int I = 0;i < listOflistOfStrings.size();我+ +){

List listOfStrings = listOflistOfStrings.get(i);

For (int j = 0;j < listOfStrings.size();j + +) {

System.out.println (listOfStrings.get (j));

正确答案:

for (List l: listOflistOfStrings) {

List listOfStrings = l;

for(字符串s: l) {

System.out.println(年代);

解释

正确答案使用ForEach循环。推荐使用ForEach循环遍历list,因为list包含迭代器。ForEach循环使用迭代器遍历List。其中一个答案使用了常规的For循环,虽然答案是正确的,但它不是最好的选择。

大学导师的学习工具