Java,从链表参数返回链表

标签 java list methods collections parameters

我正在尝试创建一个方法,该方法返回列表中任意两位数字总和为零的位置值。我遇到困难的地方是:创建返回方法类型,选择要传递的适当参数,以及创建一个包含要返回的值的空列表。

任何帮助将不胜感激!!

public class TwoSums {

public LinkedList<Integer> sum_values(LinkedList<Integer> input){

(上)我正在尝试(但不确定如何)从该方法返回一个链接列表。我希望参数是一个具有 {3,-3,0,1} 之类的值的列表。我也不确定这里的返回类型应该是什么。

    int iterator = 0;
    int scanner = 0;
    LinkedList positions = new LinkedList<Integer>();

(上图)我正在尝试创建一个空列表,如果参数的位置值总和为零,我可以将其插入其中

    while(iterator<input.length){ 
        if (iterator + scanner !=0){
            scanner ++;}
        else if (iterator + scanner ==0){
            //push iterator and scanner values to the linkedlist

最佳答案

这可能是你的作业,所以我只是给你一些指导性的想法;我不会为你做这些工作!

首先,返回类型。问题是:你不能只返回单个数字。因为,您对数字对感兴趣。因此你需要一些类似的类(class)

public class IndexPair {
  private final int firstIndex;
  private final int secondIndex;

  public IndexPair(int first, int second) { this.firstIndex = first ...

然后你的方法可以简单地返回 List<IndexPair>目的。注意:如果你是认真的,你会想重写 equals 方法;以便轻松比较 IndexPair 对象。

当然:Java 已经知道一些可以在这里使用的 Pair 类;而不是发明自己的东西。

另一个问题:找到这些对。一个简单的解决方案是:

List<IndexPair> results = new ArrayList<>();
for (int firstIndex = 0; firstIndex < input.size(); firstIndex++) {
  for (int secondIndex = firstIndex+1; secondIndex < input.size(); secondIndex++) {
    if (input.get(firstIndex) + input.get(secondIndex) == 0) {
       results.add(new IndexPair(firstIndex, secondIndex));
正如所说;以上内容旨在帮助您继续前进。该代码中可能存在一些拼写错误或细微的错误。将其作为灵感并与之合作,直到它满足您的需要!

编辑:调用您的方法就像

List<IndexPair> pairs = sum_values(Arrays.asList(-3, 3, 0, 0)) 
例如。但请理解:这确实是基本的东西。只需阅读一些有关列表和数组的内容即可。这些事情已经被记录很多次了。

关于Java,从链表参数返回链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40640725/

相关文章:

r - 如何对 data.frames 列表进行索引(子集)

ruby-on-rails - 替换 Ruby on Rails 3.1 中的 'auto_link' 方法

javascript - 使用特殊分隔符在 JavaScript 中拆分字符串

java - Log4j AsyncAppender

java - 保存在 JFrame 中所做的更改

java - Appium 1.6,iOS 10 : Swipe left on a specific element

list - 将 List[Tuple2[A,B]] 转换为 Tuple2[Seq[A],Seq[B]]

c# - 对 List<Tuple<string, Class>> 按字母顺序对元组的字符串值进行排序,C#

oop - 方法调用作为另一个方法调用的参数?

java - 每小时自动运行一次 Java 方法