Java 向量能否在一个位置存储多个数据?
我试图在这里找到相关的问题。我认为这是一个常见的问题,但不幸的是我仍然无法在互联网上找到 一个点包含3个部分,id、lat和lon。我使用了3个分开的向量来存储它们,但它们是相互关联的。当一个新的点被发现时,它必须在不同的向量中添加3次 我想将3个数据添加到一个向量中,而不是3个分开的向量。矢量能做到吗?或者任何其他简单的方法来达到我的目标 非常感谢 这是我的密码:Java 向量能否在一个位置存储多个数据?,java,eclipse,vector,Java,Eclipse,Vector,我试图在这里找到相关的问题。我认为这是一个常见的问题,但不幸的是我仍然无法在互联网上找到 一个点包含3个部分,id、lat和lon。我使用了3个分开的向量来存储它们,但它们是相互关联的。当一个新的点被发现时,它必须在不同的向量中添加3次 我想将3个数据添加到一个向量中,而不是3个分开的向量。矢量能做到吗?或者任何其他简单的方法来达到我的目标 非常感谢 这是我的密码: public class Try01 { static Vector<String> id = new Vecto
public class Try01 {
static Vector<String> id = new Vector<String>();
static Vector<Double> lat = new Vector<Double>();
static Vector<Double> lon = new Vector<Double>();
public static void main( String[] args ) throws Exception {
// create an input source for target document and parse it
int counter=0;
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document doc = docBuilder.parse (new File("data.xml"));
// get all tags in the document with the name link
NodeList links = doc.getElementsByTagName( "node" );
for( int i = 0; i < links.getLength(); i++ ) {
Element link = (Element) links.item( i );
//add part
id.add(link.getAttribute( "id" ));
lat.add( Double.parseDouble(link.getAttribute( "lat" )) );
lon.add( Double.parseDouble(link.getAttribute( "lon" )) );
//checking point: show the vector
System.out.println( counter + " ) Vector = " + id.get(counter) + " and " + lat.get(counter) + " with " + lon.get(counter));
counter++;
}
公共类Try01{
静态向量id=新向量();
静态向量lat=新向量();
静态向量lon=新向量();
公共静态void main(字符串[]args)引发异常{
//为目标文档创建输入源并对其进行分析
int计数器=0;
DocumentBuilderFactory docBuilderFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder=docBuilderFactory.newDocumentBuilder();
Document doc=docBuilder.parse(新文件(“data.xml”);
//使用名称链接获取文档中的所有标记
NodeList links=doc.getElementsByTagName(“节点”);
对于(inti=0;i
您需要创建一个类来存储点的三个部分,然后创建一个向量来保存这些对象的集合
比如:
public class Point {
private String id;
private Double latitude;
private Double longitude;
//constructor, getters and setters, and rest of the class omitted
}
另一方面,我认为不再特别鼓励使用向量
s,因此我会使用列表
,例如数组列表
:列表=新数组列表
。我只是查找了一下,因为我不是100%确定,这里有一篇有用的文章解释了何时使用它们:您可以创建一个对于您自己的类,如Vector
,该类包含所有3个变量,即其字段
public class YourClass {
String id;
double lat;
double lon;
}
我们通常创建单独的类,并将这些类的实例存储到向量:
public class Coordinate {
public String id;
public double lat;
public double lon;
}
后来:
static Vector<Coordinate> coordinates = new Vector<Coordinate>();
您可以将多个“数据”存储到一个向量位置,但不能存储多个“对象”。因此,显而易见的解决方案是使用一个“对象”来存储多个“数据”。如果要将位置(纬度/经度)存储到一个向量位置,请创建一个对位置建模的类
class Location
{
private String id = null;
private double latitude = 0.0;
private double longitude = 0.0;
public Location(String id, double latitude, double longitude)
{
this.id = id;
this.latitude = latitude;
this.longitude = longitude;
}
public void setId(String id)
{
this.id = id;
}
public String getId()
{
return id;
}
public double getLongitude()
{
return longitude;
}
public void setLongitude(double longitude)
{
this.longitude = longitude
}
public double getLatitude()
{
return longitude;
}
public void setLatitude(double latitude)
{
this.latitude = latitude;
}
}
然后将其存储到向量中,如:
double lat, lon;
Vector<Location> vlocations = new Vector<Location>();
vlocations.add(new Location(lat, lon));
double-lat,lon;
向量位置=新向量();
添加(新位置(lat,lon));
这听起来像是家庭作业。提示-使用objects.Vector,但可能没有理由使用预成熟的数组类型
double lat, lon;
Vector<Location> vlocations = new Vector<Location>();
vlocations.add(new Location(lat, lon));