Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Сортировка ассоциативного массива. / 5 сообщений из 5, страница 1 из 1
15.05.2006, 12:17
    #33726637
Fixin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка ассоциативного массива.
Граждане, больной вопрос.
Есть ассоциативный массив:
{1:"Иванов", 2:"Петров", 3:"Сидоров"}
Т.е. массив кода человека и его фамилии.
Нужно отсортировать по фамилии, ну а потом по кодам вытащить связную информацию.
Если я заведу массив:
Array("Иванов", "Петров", "Сидоров")
я конечно отсортирую по фамилии, но из фамилии я не могу получить код, т.е. выгрузка в массив вопроса не решает.

А ассоциативный массив не имеет метода сортировки.

Неужели писать пузырек для ассоциативного? Может у кого готовый код есть по сортировке хэшей?
...
Рейтинг: 0 / 0
15.05.2006, 12:45
    #33726786
AciD_v
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка ассоциативного массива.
Смотри интерфейс java.util.SortedMap и его реализацию java.util.TreeMap, а также интерфейс java.util.Comparator, если нужна нестандартная сортировка.
(В качестве ключа использовать фамилию.)
...
Рейтинг: 0 / 0
15.05.2006, 12:49
    #33726809
Fixin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка ассоциативного массива.
А не для java.
...
Рейтинг: 0 / 0
15.05.2006, 13:01
    #33726868
AciD_v
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка ассоциативного массива.
FixinА не для java.
Тогда ищи на другом форуме, посвященном языку программирования "не для java".
...
Рейтинг: 0 / 0
16.05.2006, 10:23
    #33729099
Fixin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка ассоциативного массива.
Блин, ну для JavaScript!!!

Короче, я написал код, может у кого есть получше, выкладываю:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
<html>
<head>
<title>join()</title>
<SCRIPT language=JavaScript type=text/JavaScript>

function HashSort(Hash, Field) {
	var Res= new  Array();
	var TmpValues= new  Array();
	var TmpKeys= new  Array();
	var Weights= new  Array();



	var counter= 0 ;

	 for  (var HashKey in Hash) {
		TmpValues[counter]=Hash[HashKey][Field];
		TmpKeys[counter]=HashKey;
		Weights[counter]=counter;
		counter++;
	}

	//Find position for item
	 for  (var i= 0 ; i < counter; i++) {
		 for  (var j=i+ 1 ; j < counter; j++) {
			 if  (TmpValues[i] > TmpValues[j]) {
				Weights[i]++;
				Weights[j]--;
			}
		}
		Res[Weights[i]]=TmpKeys[i];
	}

	 return  Res;
}

var n={
	"Второй":{"ord": 2 },
	"Первый":{"ord": 1 },
	"Седьмой":{"ord": 7 },
	"Шестой":{"ord": 6 },
	"Четвертый":{"ord": 4 },
	"Третий":{"ord": 3 },
	"Пятый":{"ord": 5 },
	"Восьмой":{"ord": 8 },
	"Девятый":{"ord": 9 },
	"Десятый":{"ord": 10 }
};




function Dump(d,l) {
     if  (l ==  null ) l =  1 ;
    var s = '';
     if  (typeof(d) == "object") {
        s += typeof(d) + " {\n";
         for  (var k in d) {
             for  (var i= 0 ; i<l; i++) s += "  ";
            s += k+": " + Dump(d[k],l+ 1 );
        }
         for  (var i= 0 ; i<l- 1 ; i++) s += "  ";
        s += "}\n"
    }  else  {
        s += "" + d + "\n";
    }
     return  s;
}

document.write(Dump(n));
document.write("<HR>");
Res=HashSort(n, "ord"); 

document.write("" + Res.join(";"));

</script>
</head>
</body>
</html> 


...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Сортировка ассоциативного массива. / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]