Как я могу получить данные из двух векторов? - PullRequest
1 голос
/ 21 июня 2020

Я новичок в Java и первым использую вектор.

ввод

A aaa bbb 

C dddd eeee fff

если вы хотите vec.elementAt(1);

Результат будет быть:

C ddd eee fff

Я не знаю, как использовать два вектора (имя и слово), реализовать это.

Мои мысли такие:

       vec[0]             vec[1]
name   A                  C
word   aaa      bbb       dddd     eeee     ffff
       wvec[0]  wvec[1]   wvec[0]  wvec[1]  wvec[2]

Целую неделю думал об этой проблеме

Это мой код:

public class Name {
     Vector <String> name = new Vector<String>();
     ....
    while ( ... ) {
      vec.add(name);
      ...
    } // while
}


public class Word {
    Vector <String> wvec = new Vector<String>();
    while ( ... ) {
      wvec.add(word);     
    } // while
}

Ответы [ 2 ]

1 голос
/ 21 июня 2020

Вы можете реализовать сценарий, как показано ниже:

Word Class:

class Word{
    char name;
    Vector<String> words;
}

TestClass:

publi c class TestClass {publi c stati c void main (String [] args) {

    Word word = new Word();
    word.name = 'A';
    word.words = new Vector<String>();
    word.words.add("aaa");
    word.words.add("bbb");
    
    Word word1 = new Word();
    word1.name = 'B';
    word1.words = new Vector<String>();
    word1.words.add("dddd");
    word1.words.add("eeee");
    word1.words.add("fff");
    
    Vector<Word> wordVector = new Vector<>();
    
    wordVector.add(word);
    wordVector.add(word1);
    System.out.println("Name" + "-----" + "Words");
for (int i = 0; i < wordVector.size(); i++) {
    System.out.print(wordVector.get(i).name + "------");
    for(int j=0;j<wordVector.get(i).words.size();j++) {
        System.out.print(wordVector.get(i).words.get(j)+" ");
    }
    System.out.println();
}
}

}

0 голосов
/ 21 июня 2020

Пример реализации, которая анализирует строковые строки и печатает данные, может быть следующим:

import java.util.*;

public class Example {
    
    static class Line {
        private String name;
        private Vector<String> words = new Vector<>();
        
        public void setName(String name) { this.name = name; }
        public void addWord(String word) { this.words.add(word); }
        
        public String getName() { return name; }
        public Vector<String> getWords() { return words; }
        
        public String toString() {
            StringBuilder sb = new StringBuilder();
            sb.append("name:\t").append(name).append('\n');
            sb.append("words:\t");
            for (String word : words) {
                sb.append(word).append('\t');
            }
            sb.append("\n     \t");
            for (int i = 0, n = words.size(); i < n; i++) {
                sb.append("w[").append(i).append("]\t");
            }
            sb.append('\n');
            return sb.toString();
        }
    }

    private static Line parseLine(String src) {
        if (src == null) return null;
        Line line = new Line();
        String[] arr = src.split(" ");
        if (arr.length > 0) {
            line.setName(arr[0]);
            for (int i = 1; i < arr.length; i++) {
                line.addWord(arr[i]);
            }
        }
        return line;
    }
    
    public static void main(String []args) {
        
        String[] rawLines = {
            "A aaa bbb",
            "C dddd eeee fff"            
        };
        
        Vector<Line> lines = new Vector<>();
        for (String rawLine : rawLines) {
            Line line = parseLine(rawLine);
            lines.add(line);
            System.out.println(line);
        }    
    }
}

Этот код выводит следующий результат:

name:   A
words:  aaa bbb 
        w[0]    w[1]    

name:   C
words:  dddd    eeee    fff 
        w[0]    w[1]    w[2]    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...