相关疑难解决方法(0)

如果x在Java中的数组中

在python中,您可以使用一个非常简单的if语句来查看用户输入的内容(或只是一个变量)是否在列表中:

myList = ["x", "y", "z"]
myVar = "x"

if myVar in x:
    print("your variable is in the list.")
Run Code Online (Sandbox Code Playgroud)

我怎么能用Java做到这一点?

java

6
推荐指数
1
解决办法
2万
查看次数

数组包含另一个

我有一个包含一些字符串的数组tab1和另一个可以包含数组tab1的所有元素的数组.我怎么能这样做,以避免重复tab1的相同元素:

String[] tab1 ={"AF","HB,"ER"} 
String[] tab2 ={"AF","HB,"ER","HO","NF","BB","CD","PO"}
Run Code Online (Sandbox Code Playgroud)

我想说:tab2 = {tab1,"HO",...}任何想法?

谢谢,

java arrays

5
推荐指数
1
解决办法
361
查看次数

Java - 检查项目是否在数组中

可能重复:
在Java中,如何测试Array是否包含某个值?

我有一个数组设置如下:

Material[] blockedlevel1 = {
            Material.mymaterialone, Material.mymaterialtwo  
        };
Run Code Online (Sandbox Code Playgroud)

如何查看材质是否在此数组中?

java arrays

4
推荐指数
1
解决办法
2万
查看次数

在Java中跳过for循环中的数字.我怎样才能让它变得更干净?

我需要创建一个从305开始到397结束的for循环.

for (int i = 305; i < 397; i++) {
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

问题是,我需要跳过310,321,332,343,354,365,376和387.

我知道我可以通过在循环中放置以下内容来完成此操作:

int[] skip = { 310, 321, 332, 343, 354, 365, 376, 387 };
for (int i2 : skip) {
    if (i != i2) {
        //do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

但我觉得有一种更有效,更干净的方法来实现这一目标.

java int loops for-loop skip

4
推荐指数
2
解决办法
4192
查看次数

空间复杂性示例

所以我想知道在for循环中何时创建对象(或基元),这对空间复杂性有何影响?

例如,下面是一个代码示例:

public boolean checkUnique(String p){
    int term = -1;
    int len = p.length();
    for (int i =0; i<len; i++) {
        char c = p.charAt(i);
        StringBuilder sb = new StringBuilder(p.substring(0, i));
        sb.append(p.substring(i+1, len));
        String str = sb.toString();
        if (str.indexOf(c) != term) {
            return false; 
        }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

所以我试图分析这个算法的空间复杂性.它看起来像是O(n).这是我的推理:迭代次数等于输入大小,并且在每次迭代中我们创建一个StringBuilder对象,因此我们创建与输入大小成比例的StringBuilder对象.同样的推理可以应用于我们在每次迭代时创建String对象和char的事实.这个推理是否正确?

我问的原因是因为我遇到了一种算法,在每次迭代后进行以下赋值:

int val = str.charAt(i);
Run Code Online (Sandbox Code Playgroud)

然而,该算法具有O(1)空间复杂度.所以我的理解一定不正确呢?在这种情况下,checkUnique算法的空间复杂度也为O(1).

java algorithm big-o space-complexity

3
推荐指数
1
解决办法
1027
查看次数

检查数组是否包含Java值的最有效方法?

我对Java类中的方法有一个类似的逻辑(不是真正的代码,为了示例目的,这是简化的).

private Boolean method(Boolean booleanValue, SomeObject object) {
  return booleanValue ? Arrays.asList(object.getStringsArray()).contains("string") : false;
}
Run Code Online (Sandbox Code Playgroud)

指派自己检查PR的合作者给出了以下评论:

这是低效的.它正在创建一个新的数据结构,只是迭代它并检查是否有某个字符串.

getStringsArray()方法返回一个String[],所以使用for循环会比Arrays.asList()

哪种方式更有效地实现这一目标?

java list data-structures

3
推荐指数
1
解决办法
2838
查看次数

简单数组:检查值是否匹配

我只是试图查看输入的值是否与数组中已有的值匹配,以及它是否返回"有效".我意识到这很简单,但我不能让它工作:

 public static void main(String[] args) {

        Scanner keyboard = new Scanner(System.in);
        String[] accountNums = { "5658845", "8080152", "1005231", "4520125", "4562555",
                                 "6545231", "7895122", "5552012", "3852085", "8777541", 
                                 "5050552", "7576651", "8451277", "7881200", "1302850", 
                                 "1250255", "4581002" };

        String newAccount;
        String test = "Invalid";

        newAccount = keyboard.next();

        for (int i = 0; i < accountNums.length; i++)
        {        
            if(newAccount == accountNums[i])
            {
                test = "Valid";
            }
        }

        System.out.println(test);
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助(和耐心)

java arrays

2
推荐指数
1
解决办法
4123
查看次数

三合会没有出现在战斗中?(Java Set缺少一个项目)

我有来自两家公司asoft和bsoft的代码.我也无法改变.这是我的情况的简化版本,我非常确定有足够的信息来查找导致问题的原因.

bsoft提供IGang,代表一个可以与其他帮派作战的团伙.

package bsoft;

public interface IGang {
    /** @return negative, 0, or positive, respectively
     *          if this gang is weaker than, equal to, or stronger
     *          than the other
     */
    public int compareTo(IGang g);
    public int getStrength();
    public String getName();
    public void attack(IGang g);
    public void weaken(int amount);
}
Run Code Online (Sandbox Code Playgroud)

asoft提供GangWar,允许IGangs战斗:

package asoft;
import java.util.*;
import bsoft.*;
/** An `IGang` ordered by identity (name) */
public interface ComparableGang extends IGang, Comparable<IGang> {}

package asoft; …
Run Code Online (Sandbox Code Playgroud)

java interface set diamond-problem

2
推荐指数
1
解决办法
417
查看次数

如果它是数组中的值,是否可以打印数字?(JAVA)

我试图找出是否可以打印出一个int ONLY,如果它是一个数字数组中的值.例如:

import java.util.Random;

public class arrays {
    Random random = new Random();

    public void method () {
        int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9};

        int j = random.nextInt(20);

        if() {
            System.out.println("It is in the array.");
        } else {
            System.out.println("It is not in the array.");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我不确定的是你将在"if"之后放在括号中,以便系统打印"它在数组中"只有j在1和9之间.

谢谢!

java arrays

2
推荐指数
1
解决办法
283
查看次数

如何检查元素是否在java中的数组中?

如何检查元素是否在java中的数组中?

        int[] a = new int[5];
        a[0] = 5;
        a[1] = 2;
        a[2] = 4;
        a[3] = 12;
        a[4] = 6;
        int k = 2;
        if (k in a) { // whats's wrong here?
            System.out.println("Yes");
        }
        else {
            System.out.println("No");
        }
Run Code Online (Sandbox Code Playgroud)

谢谢!

java arrays

1
推荐指数
1
解决办法
659
查看次数