值对的Java集合?(元组?)

值对的Java集合?(元组?)

我喜欢Java有一个Map,您可以在其中定义映射中每个条目的类型,例如<String, Integer>.

我要寻找的是一种集合的类型,其中集合中的每个元素都是一对值。这对中的每个值都可以有自己的类型(如上面的String和Integer示例),这是在声明时定义的。

集合将保持其给定的顺序,并且不会将其中一个值视为唯一的键(如在地图中)。

本质上,我希望能够定义一个类型数组。<String,Integer>或者其他两种类型。

我意识到,除了其中的两个变量之外,我可以创建一个类,但这似乎过于冗长。

我也意识到我可以使用一个2D数组,但是由于我需要使用不同的类型,我必须使它们成为对象数组,然后我必须一直进行转换。

我只需要在集合中存储对,所以每个条目只需要两个值。这样的东西在不走类路线的情况下存在吗?谢谢!


小怪兽爱吃肉
浏览 703回答 3
3回答

UYOU

结对类是那些“gimme”泛型示例之一,它们很容易自己编写。例如,从我的头顶上:public&nbsp;class&nbsp;Pair<L,R>&nbsp;{ &nbsp;&nbsp;private&nbsp;final&nbsp;L&nbsp;left; &nbsp;&nbsp;private&nbsp;final&nbsp;R&nbsp;right; &nbsp;&nbsp;public&nbsp;Pair(L&nbsp;left,&nbsp;R&nbsp;right)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;this.left&nbsp;=&nbsp;left; &nbsp;&nbsp;&nbsp;&nbsp;this.right&nbsp;=&nbsp;right; &nbsp;&nbsp;} &nbsp;&nbsp;public&nbsp;L&nbsp;getLeft()&nbsp;{&nbsp;return&nbsp;left;&nbsp;} &nbsp;&nbsp;public&nbsp;R&nbsp;getRight()&nbsp;{&nbsp;return&nbsp;right;&nbsp;} &nbsp;&nbsp;@Override &nbsp;&nbsp;public&nbsp;int&nbsp;hashCode()&nbsp;{&nbsp;return&nbsp;left.hashCode()&nbsp;^&nbsp;right.hashCode();&nbsp;} &nbsp;&nbsp;@Override &nbsp;&nbsp;public&nbsp;boolean&nbsp;equals(Object&nbsp;o)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!(o&nbsp;instanceof&nbsp;Pair))&nbsp;return&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;Pair&nbsp;pairo&nbsp;=&nbsp;(Pair)&nbsp;o; &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;this.left.equals(pairo.getLeft())&nbsp;&& &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.right.equals(pairo.getRight()); &nbsp;&nbsp;}}是的,它存在于网络上的多个地方,具有不同程度的完整性和特性。(我上面的例子是不可变的。)

吃鸡游戏

摘要Map.ImpleEntry轻松点,你要找的是:java.util.List<java.util.Map.Entry<String,Integer>>&nbsp;pairList=&nbsp;new&nbsp;java.util.ArrayList<>();你怎么填?java.util.Map.Entry<String,Integer>&nbsp;pair1=new&nbsp;java.util.AbstractMap.SimpleEntry<>("Not&nbsp;Unique&nbsp;key1",1);java.util.Map.Entry<String,Integer>&nbsp;pair2=new&nbsp;java.util.AbstractMap.SimpleEntry<>("Not&nbsp;Unique&nbsp;key2",2);pairList.add(pair1);pairList.add(pair2);这简化为:Entry<String,Integer>&nbsp;pair1=new&nbsp;SimpleEntry<>("Not&nbsp;Unique&nbsp;key1",1);Entry<String,Integer>&nbsp;pair2=new&nbsp;SimpleEntry<>("Not&nbsp;Unique&nbsp;key2",2);pairList.add(pair1);pairList.add(pair2);还有,在一个人的帮助下createEntry方法,可以进一步减少以下详细内容:pairList.add(createEntry("Not&nbsp;Unique&nbsp;key1",&nbsp;1));pairList.add(createEntry("Not&nbsp;Unique&nbsp;key2",&nbsp;2));自ArrayList不是最终的,它可以被子类化以公开of方法(以及前面提到的createEntry方法),导致语法简洁:TupleList<java.util.Map.Entry<String,Integer>>&nbsp;pair&nbsp;=&nbsp;new&nbsp;TupleList<>();pair.of("Not&nbsp;Unique&nbsp;key1",&nbsp;1);pair.of("Not&nbsp;Unique&nbsp;key2",&nbsp;2);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java