我这样做:
(String[]) myTreeSet.toArray();
Run Code Online (Sandbox Code Playgroud)
但这在运行时给了我一个ClassCastException.
我唯一能想到的就是先创建一个数组然后遍历myTreeSet中的每个元素并将其添加到数组中.似乎必须有比这更好的方法.我应该或者应该这样做吗?
谢谢.
有没有办法真正看到标准java类的源代码?我正在制作一个点(HashSet<Point>)的散列表,我想确保它能很好地散列,但是我看不出Point的hashCode()方法究竟是什么样的,所以我不知道它真的有多好.谁能帮我?我应该覆盖它吗?如果是这样,有没有一个简单的方法来做到这一点,而无需创建一个全新的java文件/类?
我正在创建一个java应用程序,它将存储一堆随机单词(可以随时添加到应用程序或从应用程序中删除).我想快速查找以查看给定单词是否在字典中.什么是最好的java数据结构用于此?截至目前,我正在考虑使用hashMap,并使用相同的单词作为值和该值的键.这是常见做法吗?对于(键,值)对中的键和值使用相同的字符串对我来说似乎很奇怪,所以我想确保没有更好的想法,我忽略了.
我也在考虑使用treeMap来保持单词排序,给我一个O(lgn)查找时间,但hashMap应该给出预期的O(1)查找时间,因为我理解它,所以我认为这会更好.
所以基本上我只是想确保hashMap想法与字符串加倍,因为每个(键,值)对中的键和值都是一个很好的决定.谢谢.
如果是这样,两者有什么区别?在Java库中实际上有两个单独的类定义吗?一个用于旧的ArrayList,另一个用于新的通用的?这纯粹是好奇心的问题.
这些问题纯粹是出于好奇而被问到的.我实际上并不需要子类化数组,我只是想弄清楚它们如何在Java中工作.
阵列的Javadoc API在哪里?我找到了一个'Arrays'类,但该类只包含在Java数组上使用的实用程序,而不是实际的数组类.这引出了我的下一个问题:
是否有一个实际的数组类,其中所有数组都是子类?
是(例如)Object[]的超类String[]吗?我猜这里的答案是否定的.这些实际的课程和其他课程一样吗?
是String[]一个不同的类String[][]?或者String[][][],等等?
正如标题中所要求的那样,是否有可能对数组类进行子类化(或者对数组类进行子类化?仍然不确定它是如何工作的,因为你可以通过上面的问题来判断)?我可以创建自己的类,其实例与数组完全相同,除非它们具有更多功能吗?
谢谢.
这可能是挑剔的,但我喜欢我的所有代码都在表单中
function()
{
code
}
Run Code Online (Sandbox Code Playgroud)
代替
function() {
code
}
Run Code Online (Sandbox Code Playgroud)
当Eclipse为我自动生成一个类时,它将使用后一种格式,因此我必须通过并更改所有生成的方法.无论如何都要这样做它会自动将它放在第一种格式中吗?我正在使用java,如果这有所作为.
如果我有两个不同的数组,而我所能做的就是检查数组中的两个元素是否相等(换句话说,没有比较函数(除了equals)对元素进行排序),是否有任何有效的方法来检查一个数组是否是另一个数组的排列?
我有以下内容:

我想这样做,以便tableview停在"So"单元格,而不是在它下面的所有空白单元格(大计划是有一堆多项选择问题,如该图片中的那个,全部在在一个scrollview上彼此顶部).我猜我需要设置tableView的框架,但我想知道是否有一种简单的方法可以在运行时计算实现单元格的tableview部分的精确高度(图片中带有文本的部分).这很棘手,因为我做了它,以便每个单元格的高度可以改变以适应其中的文本量.有人有什么建议吗?
假设我有以下函数返回一个CLLocationCoordinate2D,它只是一个struct有两个doubles(名为longitude和latitude)的函数:
- (CLLocationCoordinate2D)getCoordinateForHouse:(House *)house
{
CLLocationCoordinate2D coordToReturn;
coordToReturn.latitude = // get house's latitude somehow
coordToReturn.longitude = // get house's longitude somehow
return coordToReturn;
}
Run Code Online (Sandbox Code Playgroud)
我struct可以像任何其他原始类型一样对待它吗?例如,如果我在其他地方的代码中调用上面的函数,如下所示:
CLLocationCoordinate2D houseCoord =
[someClassThatTheAboveFunctionIsDefinedIn getCoordinatesForHouse:myHouse];
Run Code Online (Sandbox Code Playgroud)
从函数返回的值只是被复制到houseCoord(就像任何其他原语一样),对吧?我不必担心CLLocationCoordinate2D其他地方会被摧毁吗?
现在看来很明显,这可能就是这种情况,但我只需要确认.
我想知道是否保证在Java程序中,只要左边的表达式(exp1)计算为false,就不会计算连接右边的布尔表达式(上面的exp2).我想知道因为我有一个如下表达式:
if (var != null && var.somePredicate())
// do something
Run Code Online (Sandbox Code Playgroud)
如果Java (var != null && var.somePredicate())在看到varnull 之后不能保证停止计算,那么它可能会尝试评估var.somePredicate()哪个会抛出NullPointerException.
所以我的问题是,Java在这方面是否保证了某种行为?或者写起来会更安全
if (var != null)
{
if (var.somePredicate())
// do something
}
Run Code Online (Sandbox Code Playgroud) java ×7
arrays ×3
objective-c ×2
algorithm ×1
arraylist ×1
boolean ×1
conditional ×1
eclipse ×1
evaluation ×1
expression ×1
format ×1
generics ×1
hashcode ×1
hashmap ×1
hashset ×1
iphone ×1
permutation ×1
point ×1
string ×1
struct ×1
treemap ×1
treeset ×1
uitableview ×1