Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数组元素比较_Java_Arrays - Fatal编程技术网

Java 数组元素比较

Java 数组元素比较,java,arrays,Java,Arrays,我有一个最初为空的对象数组,即所有项都为空 objecto[]={null,null,null,null} 类对象已定义 class Object { int type; int x; int y; Object(int index) { type = new Random().nextInt(2); int[] xValues={25,95,175,245}; x=xValues[new Random().

我有一个最初为空的对象数组,即所有项都为空

objecto[]={null,null,null,null}

类对象已定义

class Object
{
    int type;
    int x;
    int y;
    Object(int index)
    {
        type = new Random().nextInt(2);
        int[] xValues={25,95,175,245};
        x=xValues[new Random().nextInt(4)];
        y=new Random().nextInt(20)*-150;
        for(int n=0;n<o.length;n++)
        {

            try
            {
                if(o[n].y==y && o[n].x==x)
                {
                    //This is a contradiction and so change the values of x and y as desired
                }
            }catch(Exception e){}
        }
    }
}
类对象
{
int型;
int x;
int-y;
对象(int索引)
{
type=new Random().nextInt(2);
int[]xValues={25,95175245};
x=x值[new Random().nextInt(4)];
y=新随机数().nextInt(20)*-150;

对于(int n=0;n1:您应该使用MyObject(因为对象已经存在!)

2:在构造函数中使用while循环

boolean not_done=true;

while (not_done)
{
// once again
// ...

if  ( // no contradiction
  not_done=false;

仅此而已

首先,伙计们,我当然可以编译我自己的对象类,如果它在不同的包中……但我同意,为自己的类使用这样的特殊名称不是一个好的做法

看起来,您想要创建N个对象

我会这样做的

package q34350913;

import java.util.LinkedList;
import java.util.List;

public class Object {

    // TODO: add your properties...

    public static void main(final String[] args) {
        final List<Object> list = new LinkedList<Object>();
        final int N = 5;
        while (list.size() < N) {
            final Object newObject = randomCreation();
            if (isOkToAdd(list, newObject)) {
                list.add(newObject);
            }
        }
    }

    private static Object randomCreation() {
        return null; // TODO !!!
    }

    private static boolean isOkToAdd(final List<Object> list, final Object newObject) {
        for (final Object listItem : list) {
            if (contradicts(listItem, newObject)) {
                return false;
            }
        }
        return true;
    }

    private static boolean contradicts(final Object listItem, final Object newObject) {
        return false; // TODO !!!
    }
}
包装q34350913;
导入java.util.LinkedList;
导入java.util.List;
公共类对象{
//TODO:添加您的属性。。。
公共静态void main(最终字符串[]args){
最终列表=新的LinkedList();
最终整数N=5;
while(list.size()

但是您必须实现自己版本的
随机创建
冲突
,请参见待办事项。

您应该移动
随机()
对象
构造函数中退出逻辑,在运行
对象
创建循环的类中运行它,然后将准备好的数字传递到
对象的
构造函数中。原因如下:

1) 在构造函数中放入这么多逻辑不是一种干净的方法,应该避免。构造函数应该创建对象,也可以调用设置对象的方法,但本身不应该包含太多逻辑。代码干净:-)


2) 如果在父对象中创建随机数,您将能够遍历
对象
[],以确保以前创建的对象中没有一个包含新的数字:-)

阻止您写入
布尔包含的内容(对象[]数组,对象元素)
method?嗯,写这篇文章比在这里提问要快……两个对象完全相同的属性只是矛盾的一种情况。还有其他条件。你对矛盾的解释与你在上一段中使用的词相矛盾。你第一次说它是关于不同事物的矛盾一个集合,第二次是关于同一实例的不同属性。永远不要使用我们已经为自己的类使用过的类名。将它命名为MyObject,或者,更好的是,从它所涉及的主题(汽车、房子、维护…)中给出一些名称您的代码不可编译,请将其替换为真实代码。您的属性应该是私有的,对象的类名错误,try不明确并且没有catch块-dude,您不知道自己在做什么!您的对象应该做什么?您的示例没有意义。
对象
没有
对象(int)
构造函数,而
对象
实例没有/不能有
x
y
属性。(如果你用
对象
的名称声明了你自己的类,你疯了!)
package q34350913;

import java.util.LinkedList;
import java.util.List;

public class Object {

    // TODO: add your properties...

    public static void main(final String[] args) {
        final List<Object> list = new LinkedList<Object>();
        final int N = 5;
        while (list.size() < N) {
            final Object newObject = randomCreation();
            if (isOkToAdd(list, newObject)) {
                list.add(newObject);
            }
        }
    }

    private static Object randomCreation() {
        return null; // TODO !!!
    }

    private static boolean isOkToAdd(final List<Object> list, final Object newObject) {
        for (final Object listItem : list) {
            if (contradicts(listItem, newObject)) {
                return false;
            }
        }
        return true;
    }

    private static boolean contradicts(final Object listItem, final Object newObject) {
        return false; // TODO !!!
    }
}