【问题标题】:Possible to store string and integers in one object可以将字符串和整数存储在一个对象中
【发布时间】:2010-12-30 08:51:57
【问题描述】:

是否可以在同一个对象中存储一个字符串和11个整数。

谢谢,

亚历克斯

【问题讨论】:

  • 您可能想问一下您存储 11 个数字的目的是什么……
  • 最多可以有 26 个维度!

标签: java string object integer


【解决方案1】:

创建一个实现包含字符串和 11 个整数的对象的类:

public class StringAndInt extends Object
{
    private int[] user = new int[11];
    private String string = "";

    public StringAndInt(String s, int[] i){
        user = i;
        string = s;
    }
    public StringAndInt setInt(int[] i){
        number = i;
        return this;
    }
    public StringAndInt setString(String s){
        string = s;
        return this;
    }
    public int getInt(){
        return user;
    }
    public String getString(){
        return string;
    }
}

【讨论】:

  • 您的解决方案与上述用户 cletus 建议的解决方案有何不同? (同样不需要直接扩展Object。所有Java类都根据定义扩展Object。)
【解决方案2】:

您也可以将它们放入数组Objects 中:

private Object[] mixedObjs = new Object[12];

【讨论】:

  • 他不需要使用自动装箱将整数放入 Object[]。
【解决方案3】:

当然。您可以将任何成员放入您喜欢的对象中。例如,此类存储一个字符串和 11 个整数。整数存储在一个数组中。如果您知道将有 11 个(或显然是任何固定数量),这往往比存储 11 个单独的 int 成员更可取。

public class MyObject {
  private String text;
  private int[11] numbers = new int[11];

  public String getText() { return text; }
  public void setText(String text) { this.text = text; }
  public int getNumber(int index) { return numbers[index]; }
  public void setNumber(int index, int value) { numbers[index] = value; }
}

所以你可以写一些类似的代码:

MyObject ob = new MyObject();
ob.setText("Hello world");
ob.setNumber(7, 123);
ob.setNumber(3, 456);
System.out.println("Text is " + ob.getText() + " and number 3 is " + ob.getNumber(3));

注意: Java 中的数组从零开始。这意味着大小为 11 的数组的元素位于索引 0 到 10 之间。

如果 11 是一个固定数字,您还没有真正指定数字和文本的含义和用法。取决于可能完全改变如何最好地做到这一点的答案。

【讨论】:

  • int x[5] 是 5 个数字,所以它不是 12。
  • @delf: ... Josh 所指的是我用类的方法代替的一种缩写形式(参见历史)。
【解决方案4】:

是的。你将不得不创建这个类。这是可能的。

【讨论】:

    【解决方案5】:

    是的 - 建立 12 个私有数据成员,你就在那里。

    它们是否都属于同一个对象是一个不同的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-27
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多