簡體   English   中英

Java,從linkedlist參數返回一個鏈表

[英]Java, return a linkedlist from a linkedlist parameter

我正在嘗試創建一個方法,該方法返回列表中任何兩位數的位值,該值總和為零。 我遇到的問題是:創建返回方法類型,選擇要傳遞的適當參數,並創建一個包含要返回的值的空列表。

任何幫助將不勝感激!!

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

這可能是你的功課,所以我會給你一些指導性的想法; 我不會為你做的工作!

首先,返回類型。 事情是:你不能只返回單個數字。 因為,你數字感興趣。 因此你需要一些類

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)) 

例如。 但請理解:這是非常基本的東西。 只需閱讀列表和數組。 這些東西已被記錄很多次了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM