Tag: 集合

将一个Object数组转换为我想要的类的数组

仅供审阅,有人可以快速解释阻止其工作的原因(编译时): private HashSet data; … public DataObject[] getDataObjects( ) { return (DataObject[]) data.toArray(); } ……这是什么使得它的工作方式: public DataObject[] getDataObjects( ) { return (DataObject[]) data.toArray( new DataObject[ Data.size() ] ); } 我不清楚使用铸造(或其他任何东西)的机制是如此。

为什么TreeSet会抛出ClassCastException

在下面的代码我试图添加两个员工对象 Set s = new TreeSet(); s.add(new Employee(1001)); s.add(new Employee(1002)); 但Result是java.lang.ClassCastException: Exception in thread “main” java.lang.ClassCastException: Employee cannot be cast to java.lang.Comparable at java.util.TreeMap.put(TreeMap.java:542) at java.util.TreeSet.add(TreeSet.java:238) at MyClient.main(MyClient.java:9) 但如果我换到。 Set s = new TreeSet(); s.add(new Employee(1001)); 要么 Set s = new HashSet(); s.add(new Employee(1001)); s.add(new Employee(1002)); 那么结果就是成功也没有例外。 我没有在上面的代码中进行任何类转换活动。 请帮我找出原因并建议我解决方案。

在Java 9中重载的方便工厂方法的重点是什么?

Java 9附带了用于创建不可变列表的便捷工厂方法 。 最后,列表创建非常简单: List list = List.of(“foo”, “bar”); 但是这个方法有12个重载版本,11个有0到10个元素,还有一个有var args。 static List of(E… elements) Set和Map的情况也是如此。 由于存在var args方法,有多少11个方法有什么意义呢? 我认为var-args创建一个数组,所以其他11个方法可以跳过创建一个额外的对象,在大多数情况下,0-10个元素就可以了。 还有其他原因吗?

用于 ‘? 延伸’和’? super’in Collection generics

谁能解释我们使用的原因? 在Collectiongenerics。 例如: List numberlist; List numberlist;

从列表中随机选择一个项目

如何从Java中的列表中随机选择项? 我有 List list = new ArrayList(); list.add(“One”); list.add(“Two”); 等等….我怎样才能从这个列表中随机选择 Random myRandomizer = new Random();

如何有效地迭代Java Map中的每个条目?

如果我有一个用Java实现Map接口的对象,并希望迭代其中包含的每一对,那么通过地图的最有效方法是什么? 元素的排序是否取决于我对界面的具体映射实现?