当前位置: 首页 > 知识库问答 >
问题:

数组列表到字符串() 方法

施德运
2023-03-14

我有一个数组列表,其中包含多个链接列表对象。我的主要代码是:

import java.io.*;
import java.util.AbstractList;
import java.util.*;

public class Sort {
public static void main (String[] args){
    int listNum = 0;
    File file = new File("input.txt");

    ArrayList<LinkedList> my_lists = new ArrayList<LinkedList>();

    try {
        Scanner sc = new Scanner(file);
        while (sc.hasNextLine()) {

            System.out.println("List" + listNum);
            String line = sc.nextLine();
            LinkedList the_list = new LinkedList();
            String[] templist = line.split("\\s*,\\s*");

            for(int i=0; i<templist.length; i++){
                String temp = templist[i];
                the_list.add(temp);
                System.out.println(temp);
            }
            listNum++;
            my_lists.add(the_list);


        }
        sc.close();
    } 
    catch (FileNotFoundException e) {
        e.printStackTrace();
    }

    for(int i=0;i<my_lists.size();i++){
        System.out.println(my_lists.get(i).toString());
        }
    }

}

这是我的链表对象类:

package kruskal;
import java.util.AbstractList;

public class LinkedList {

Node head;

public LinkedList(){
    this.head = null;
}

public void add (Object newData){
    Node cache = head;
    Node current = null;

    if (cache == null)
        current = new Node(newData, null);
        else {


    while ((current = cache.next) != null)
        cache = cache.next;

    cache.next = new Node(newData,null);
        }
}



public Object getFront(){
    return this.head.data;
}

}

我的节点类:

package kruskal;

public class Node {
public Object data;
public Node next;

public Node(Object data,Node next){
    this.data=data;
    this.next=next;
}
}

在我的主要代码部分的末尾,我尝试执行一个for循环来显示我的ArrayList中的每个LinkedList,但是我只得到linked list的地址:

kruskal.LinkedList@2cc47220
kruskal.LinkedList@1520a9d6
kruskal.LinkedList@136e2b70
kruskal.LinkedList@25e5d007
kruskal.LinkedList@12bc8f01
kruskal.LinkedList@19509443
kruskal.LinkedList@7935c7b0

任何想法为什么我的toString()方法不起作用?我假设我需要LinkedList类中的方法,但是我会返回什么?

共有2个答案

公冶子安
2023-03-14

您需要覆盖链接列表toString方法
您可以执行以下操作:

@Override
public String toString() {
    String res = "[";
    Node current = this.head;
    while(current != null) {
        res += current.toString() + "\t";
        current = current.next;
    }

    res += "]";
    return res;
}

当然……然后还必须覆盖<code>节点#toString)

示例代码:

@Override
public String toString() {
    return data.toString();
}
苏星宇
2023-03-14

问题在于,你没有在LinkedList类中定义toString()方法,所以它从Object继承toString()方法,该方法负责你看到的输出。

换句话说,此方法返回一个等于以下值的字符串:

getClass().getName() + '@' + Integer.toHexString(hashCode())

链接列表中重写到字符串(),返回要查看打印的字符串

 类似资料:
  • 我想做一个名为句子的字符串,包含“你好,世界,你好吗?”

  • 我有一个程序,它接受一个单词和一个文本文件字典,并在字典中搜索与给定单词相等的单词组合(是字母表)。 我最后得到了一个字符串数组的Arraylist,每个数组都是一个包含它所使用的单词的解决方案,Arraylist是所有的解决方案。 它首先按字长(降序)排序,然后对等长字使用字母排序。 我现在对各个数组进行了排序,但我正试图按照某些规则在arraylist中对它们进行排序: 按字数递增 对于包含相

  • 问题内容: 我试图将字符串数组作为参数传递给Wetland类的构造函数;我不明白如何将字符串数组的元素添加到字符串数组列表。 问题答案: 您已经具有内置方法:- 注 : -您应该使用没有。 返回一个不同的-> ,不能将其类型转换为。 然后,您将不得不使用方法,这不是很好。所以就用 注意 :-返回的列表是固定大小的列表。如果要向列表中添加某些内容,则需要创建另一个列表,并用于向其中添加元素。所以,那

  • 问题内容: 我有阵列中的国家/地区列表,我想从列表中选择一个国家/地区(可能是使用随机的?),但是我自己还没有找到答案… 这是我到目前为止所拥有的: 问题答案: 尝试:

  • 我正在从一个字符串列表中创建一个字符串数组。到目前为止,我有以下代码: 问题是toArray()返回的是Object[],而不是String[],后者在尝试转换为String[]时产生类转换异常。除了for循环之外,有没有一种简单的方法来实现我的目标,在for循环中,我将遍历Object[],将每个对象转换为一个字符串,然后将每个字符串添加到一个String[]?对一个简单的任务来说似乎有很多工作

  • 问题内容: 我有阵列 转换为字符串: 串: 以及如何将此字符串转换回数组? 问题答案: 尝试我的stringToDeep()方法转换回Array。