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

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

Неужели писать пузырек для ассоциативного? Может у кого готовый код есть по сортировке хэшей?
...
Рейтинг: 0 / 0
Сортировка ассоциативного массива.
    #33726786
AciD_v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотри интерфейс java.util.SortedMap и его реализацию java.util.TreeMap, а также интерфейс java.util.Comparator, если нужна нестандартная сортировка.
(В качестве ключа использовать фамилию.)
...
Рейтинг: 0 / 0
Сортировка ассоциативного массива.
    #33726809
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А не для java.
...
Рейтинг: 0 / 0
Сортировка ассоциативного массива.
    #33726868
AciD_v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FixinА не для java.
Тогда ищи на другом форуме, посвященном языку программирования "не для java".
...
Рейтинг: 0 / 0
Сортировка ассоциативного массива.
    #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
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Сортировка ассоциативного массива.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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