Сохранение имен в векторе и преобразование данных в хеш-таблицу в Java - PullRequest
0 голосов
/ 05 марта 2012

Мне нужно сохранить некоторые имена в векторе, а затем преобразовать эти данные в хеш-таблицу. Идентификатором записи в хеш-таблице будет серийный номер. То, что я сделал, это

import java.io.*;
import java.util.*;

class VecToHash{
public static void main(String [] args){
Vector<String> vec = new Vector<String>(); 

Hashtable names=new Hashtable();
vec.addElement(new String("name1"));
vec.addElement(new String("name2"));
vec.addElement(new String("name3"));
vec.addElement(new String("name4"));
vec.addElement(new String("name5"));

int VecSize=vec.size();

for (int i=0;i<VecSize;i++){
for (int j=0;j<VecSize;j++){
names.put(("j"), new String(vec.elementAt(i)));
    }

Set set=names.keySet();
Iterator itr=set.iterator();

while (itr.hasNext()){
String str=(String) itr.next();
System.out.println(str+":"+names.get(str));}
System.out.println();
}}}

но серийный номер не принимает в качестве идентификатора, а также необходимо удалить дубликаты в Hastable. Пожалуйста, помогите мне.

Ответы [ 2 ]

2 голосов
/ 05 марта 2012

Ох, Hashtable и Vector, очень старая школа. Интересно, вы могли бы упростить вещи, используя Set и HashMap?

Что-то вроде:

Set<String> vec = new HashSet<String>(); 

Map<Integer, String> names = new HashMap<Integer, String>();

//the set will automatically filter out duplicate values
vec.add(new String("name1"));
vec.add(new String("name2"));
vec.add(new String("name3"));
vec.add(new String("name4"));
vec.add(new String("name5"));

Integer serialNumber = 0;
for (String name : vec) {
    names.put(serialNumber, name);
    serialNumber++;
}

for (Integer temp : names.keySet()) {
    System.out.println(temp + ":" + names.get(temp));
    System.out.println();
}
0 голосов
/ 05 марта 2012

Вот правильный код.

import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.Vector;


public class Main {
/**
 * @param args
 */
/*public static void main(String[] args) {
    List<Integer> intList = new ArrayList<Integer>();
    intList.add(0, new Integer(1));
    intList.add(1, new Integer(1));
    intList.add(2, new Integer(1));
    intList.add(3, new Integer(1));
    intList.add(4, new Integer(1));
    intList.add(5, new Integer(1));

}*/


public static void main(String [] args){
Vector<String> vec = new Vector<String>(); 

Hashtable<Integer, String> names=new Hashtable();
vec.addElement(new String("name1"));
vec.addElement(new String("name2"));
vec.addElement(new String("name3"));
vec.addElement(new String("name4"));
vec.addElement(new String("name5"));

int VecSize=vec.size();

for (int i=0;i<VecSize;i++){

names.put(new Integer(i), new String(vec.elementAt(i)));
}

Set set=names.keySet();
Iterator itr= set.iterator();

while (itr.hasNext()){
Integer temp = (Integer) itr.next();
System.out.println(temp+":"+names.get(temp));}
System.out.println();
}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...