我们可以在Java中的双ArrayList上使用Character的get,add,push和pop选项吗

问题描述

我的主要问题是我试图使用字符并获取字符的值。我正在研究一种欧拉方法,并且试图获得下一个要点,那就是角色,但是它不允许我为角色做。我只被允许使用Integers。它也不会让我添加到双精度ArrayList中,这会问是否允许这样做。

是否可以推送,弹出,获取添加字符元素?

private ArrayList<ArrayList<Character>> adjacents;

void addEdge(char x,char y)
    {
        adjacents.get((Character)x).add(y);
    }

我知道当我使用整数时这种方法有效,但是我不明白为什么不使用字符。

这是用Java编码的。

答案:

发布此内容后,我得到一个问题,我不能使用字符,而是为字符数组调用函数get,add,remove等。我以前从未听说过,这就是为什么我最初的问题令许多人困惑的原因。让我知道您是否可以这样做,因为从我现在的理解来看,我认为我们不能做到。

解决方法

此问题与method get(int index)一起提供。如果将它传递给int,将得到所见内容,但是如果将它传递给char,它将被解释为{{ 3}}值,而将ascii设置为整数。

假设您将其称为字符“ 0”,则隐式转换使您可以使用列表中不存在的ascii / int get(48)进行呼叫。

一种处理方法是使用Map<Character,ArrayList<Character>>,这样您的代码即可按预期工作。

但是实际上,从您的评论看来,您可能正在搜索如下内容:

class Edge{
    public final char from;
    public final char to;

    Edge(char from,char to) {
        this.from = from;
        this.to = to;
    }
}

List<Edge> adjacents...