java Vector
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java Vector相关的知识,希望对你有一定的参考价值。
在C++中 我用Vector模拟邻接表中保存一个图时 会开一个
vector<int> Graph[N]; // N为结点数目
在Java 中 怎么开这N个vector
thx~
然后graph = new Vector[N];
或者Vector[] graph = new Vector[N]; 参考技术A 要保存一个图的N个节点,可以选择用hashmap类,该类使用别名进行节点的存取,十分方便,希望你能满意。 参考技术B 这类现在很少使用了吧
java 中vector 排序
Vector1中装有("hmm","2");
Vector2中装有("we","5");
Vector3中装有("de","3");
将这三个Vector以各自中的第二个数排序,排后结果为:
Vector2 ("we","5");
Vector3("de","3");
Vector1中装有("hmm","2");
怎么做,谢谢!
自定义排序吧,自己写一个比较子, 实现Comparator借口, 在比较子之中实现自己的比较规则。将所有的需要排序的vector放入到一个List之中,然后调用Collections的sort方法进行排序。
下面是实现的代码。
import java.util.ArrayList;import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Vector;
public class TestSort
public static final Comparator<Vector<String>> VECTOR_COMPARATOR = new Comparator<Vector<String>>()
@Override
public int compare(Vector<String> v1, Vector<String> v2)
if (v1 == null || v1.size() < 2)
return -1;
if (v2 == null || v2.size() < 2)
return 1;
return Integer.valueOf(v2.get(1)) - Integer.valueOf(v1.get(1));
;
public static void main(String[] args)
Vector<String> v1 = new Vector<String>();
Vector<String> v2 = new Vector<String>();
Vector<String> v3 = new Vector<String>();
v1.add("hmm");
v1.add("2");
v2.add("we");
v2.add("5");
v3.add("de");
v3.add("3");
List<Vector<String>> vList = new ArrayList<Vector<String>>();
vList.add(v1);
vList.add(v2);
vList.add(v3);
Collections.sort(vList, VECTOR_COMPARATOR);
System.out.println(vList);
最后输出的结果是:
[[we, 5], [de, 3], [hmm, 2]]
追问如果不是3个Vector,而是成万上千个,那么这么排序方法还合适吗?效率
追答当然合适啊。 几万个数据用这样的排序很轻松就能搞定的。
参考技术A 因为vector装的不是同一个对象,所以不能用写比较器的方法实现;既然指定是第二个值,剩下的就是三个数比较大小了。 参考技术B 就3个数,而且你知道,不是很简单吗?你知道提取Vectorn[1]来进行匹配就行了,如果是2就排最后,5就排第一
以上是关于java Vector的主要内容,如果未能解决你的问题,请参考以下文章