Различия между.Net Hashtable, Java Hashtable & HashMap

Извините за предыдущий код это все еще имело ошибки: ((стал жертвой самой быстрой проблемы оружия). Здесь это тестируется и работа. Ключом является SearchOption. AllDirectories, который избавляет от необходимости явную рекурсию.

string path = "C:\\a";
string[] dirs = Directory.GetDirectories(path, "*.*", SearchOption.AllDirectories);
string newpath = "C:\\x";
try
{
    Directory.CreateDirectory(newpath);
}
catch (IOException ex)
{
    Console.WriteLine(ex.Message);
}
for (int j = 0; j < dirs.Length; j++)
{
    try
    {
        Directory.CreateDirectory(dirs[j].Replace(path, newpath));
    }
    catch (IOException ex)
    {
        Console.WriteLine(ex.Message);
    }
}

string[] files = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories);
for (int j = 0; j < files.Length; j++)            
{
    try
    {
        File.Copy(files[j], files[j].Replace(path, newpath));
    }
    catch (IOException ex)
    {
        Console.WriteLine(ex.Message);
    }
}
5
задан Jon 31 July 2009 в 01:15
поделиться

2 ответа

Я думаю, вы спрашиваете, действуют ли HashMaps в Java и HashTables в C # примерно одинаково, и вы в целом правы с точки зрения производительности. Насколько я помню, HashMaps не жалуются, если вы вставляете повторяющиеся ключи, тогда как HashTable в C # будет.

6
ответ дан 14 December 2019 в 13:43
поделиться

По умолчанию .NET хэш-таблицы не синхронизированы, но вы можете создать синхронизированную обертку вокруг одной, например:

Hashtable myHash = Hashtable.Synchronized(new Hashtable());
0
ответ дан 14 December 2019 в 13:43
поделиться