java 将Vector转换< Vector>为String数组或String[][]

wooyq4lh  于 7个月前  发布在  Java
关注(0)|答案(1)|浏览(112)

我有一个只包含一列的JTable,名为“Points”Points
我有另一个包含七列的JTable,名为“Lines”Lines
我写了一个按钮处理程序,删除点中的每一个点(行),这是没有发现线,因为它是不利用。
我提取的内容点一点(行)一次.我提取线的全部内容理想的是在一个字符串数组.不幸的是,我使用的方法与线输出一个向量.我无法找到一种方法来转换从向量到字符串数组或类似的数据类型.我的目标是搜索线从点的单点,而不使用嵌套循环.我尝试了以下指令,但他们不工作.大概是因为方法“contains()”在搜索Vector时不起作用。我非常感谢一些建议。提前谢谢你。
我尝试了以下方法:

btnDeleteUnused.addActionListener(new ActionListener() 
        {
            public void actionPerformed(ActionEvent e) 
            {
               Vector<Vector> data =  linesTableModel.getDataVector();
                for(int k = pointsTableModel.getRowCount() - 1; k >= 0; k--)
                {
                     String pn = (String) pointsTableModel.getValueAt(k, 0);    // Fetch Point Name at (k_th row, column 0)
                     System.out.println("Current Point:  "+ pn);
                     System.out.println(data.contains(pn));
                }
                // TO BE DEVELOPED 
            }
        });

字符串

ggazkfy8

ggazkfy81#

data对象上使用contains时确实会出现问题。这是因为您可能试图搜索String,但data的每个元素都 * 不是 * String。每个元素都是另一个Vectordata变量实际上是一个二维矢量。要访问单个元素,您需要使用两个索引。2请参阅API中的范例。
因此,要搜索特定的String,需要使用嵌套循环逐个元素地搜索,或者在循环中使用contains
以下方法可用于查找目标字符串的第一个匹配项的位置:

public static int [] indexOf (Vector<Vector> theVector, String target) {
        for (int outer = 0; outer < theVector.size (); outer++) { 
            int inner = theVector.get(outer).indexOf (target);
            if (inner >= 0) { 
                return new int [] {outer, inner};
            }
        }
        return new int [] { -1, -1};
    }

字符串
您的程式码已经
System.out.println(data.contains(pn));的值。“
您可以使用上面的方法,将该行更改为
System.out.println(indexOf (data, pn) != -1);
当您开发更多的程式码时,您可以像这样存取特定的项目:

int [] location = indexOf (data, pn);
if (location [0] >= 0) {
    String foo = data.get(location[0]).get(location[1]);
    ...

相关问题