【发布时间】:2015-01-26 06:27:46
【问题描述】:
我有一个结构如下的数组:
String Array = {"1","2","3","41","56","41","72","72","72","78","99"}
我想将这个数组划分为多个数组,这些数组的值不重复......就像这样:
String Array1 = {"1","2","3","41","56","72","78","99"}
String Array2 = {"41","72"}
String Array3 = {"72"}
在 Java 中有没有直接的方法可以做到这一点,或者我必须用丑陋的循环来做到这一点(开个玩笑!)?
谢谢!
更新
我会让这个问题变得更难一些......现在我有一个结构如下所示的地图:
Map<String,String> map = new HashMap(){{
put("1@@96","10");
put("2@@100","5");
put("3@@23","100");
put("41@@34","14");
put("56@@22","25");
put("41@@12","100");
put("72@@10","100");
put("72@@100","120");
put("72@@21","0");
put("78@@22","7");
}}
请注意,值并不重要,但键很重要... 我该怎么做才能将此地图划分为类似的子地图:
Map map1 = {"1@@96" => "10"
"2@@100" => "5"
"3@@23" => "100"
"41@@34" => "14"
"56@@22" => "25"
"72@@10" => "100"
"78@@22" => "7"
}
Map map2 = {
"41@@12" => "100"
"72@@100" => "120"
}
Map map3 = {
"72@@100" => "120"
}
就像在地图的第一部分之前('@@'之前)是我希望唯一性所基于的 ID...这就像数组示例但有点困难和复杂...
抱歉中途换了个问题……
【问题讨论】:
-
丑陋的循环是什么意思?您可以遍历原始列表并将数字放入适当的结果列表中,方法是跟踪给定数字的出现次数和 N 指针,每个结果列表一个,以知道将下一个数字放在每个列表中的位置.不过,这需要对初始数组进行排序。
-
我正在寻找 JDK 或其他库中的方法...但如果遇到最坏的情况,我一定会考虑您的建议...谢谢...
-
为什么Array1有8个item,Array2有2个items,Array3有1个?这背后有什么逻辑吗?
-
Array1中的项目在Array中仅出现一次,Array2中的项目出现两次,等等 -
更新版本和原始版本完全没有区别,您仍然可以使用以下答案中提供的解决方案,因为您可以将地图视为
条目的数组。
标签: java arrays unique duplicate-removal