我有一组带时间戳的值,我想放在一个有序的集合中.
public class TimedValue {
public Date time;
public double value;
public TimedValue(Date time, double value) {
this.time = time;
this.value = value;
}
}
Run Code Online (Sandbox Code Playgroud)
用于对此集合进行排序的业务逻辑表示,值必须按降序排序,除非它比最新值早7天以上.
所以作为测试,我想出了以下代码......
DateFormat dateFormatter = new SimpleDateFormat("MM/dd/yyyy");
TreeSet<TimedValue> mySet = new TreeSet<TimedValue>(new DateAwareComparator());
mySet.add(new TimedValue(dateFormatter.parse("01/01/2009"), 4.0 )); // too old
mySet.add(new TimedValue(dateFormatter.parse("01/03/2009"), 3.0)); // Most relevant
mySet.add(new TimedValue(dateFormatter.parse("01/09/2009"), 2.0));
Run Code Online (Sandbox Code Playgroud)
如您所见,最初第一个值比第二个值更相关,但是一旦将最终值添加到集合中,第一个值已过期且应该是最不相关的.
我的初步测试表明这应该有效...... TreeSet会在添加更多值时动态重新排序整个列表.
但即使我看到它,我也不确定我是否相信它.
在添加每个元素时,排序的集合是否会重新排序整个集合?以这种方式(即性能)使用排序集合是否有任何问题?在添加所有值后手动对列表进行排序会更好(我猜它会是这样)?
后续行动:
尽可能多(甚至在某种程度上)怀疑,已排序的集合不支持这种"动态重新排序"的方式.我相信我的初步测试是"偶然"工作.随着我在集合中添加更多元素,"订单"迅速崩溃.感谢所有出色的回复,我重构了我的代码以使用许多人建议的方法.
XDocument.Load 使用版本1.1而不是1.0的XML文件时抛出异常:
Unhandled Exception: System.Xml.XmlException: Version number '1.1' is invalid. Line 1, position 16.
任何干净的解决方案来解决错误(没有正则表达式)并加载文档?
我有一个完整的路径,如下所示.
C:\Users\Ronny\Desktop\Sources\Danny\kawas\trunk\csharp\ImportME\XukMe\bin\Debug\DannyGoXuk.DTDs.xhtml-math-svg-flat.dtd
Run Code Online (Sandbox Code Playgroud)
如何从这整个部分中获取DTD"部分"?
期望的输出:
C:\Users\Ronny\Desktop\Sources\Danny\kawas\trunk\csharp\ImportME\XukMe\bin\Debug??\DannyGoXuk.DTDs
Run Code Online (Sandbox Code Playgroud)
我能用String这个方法吗?
如果是,那么如何获取它?
我发现其他人也很难通过MacPorts将Meld安装到Mac上.
我跑
sudo port install meld
Run Code Online (Sandbox Code Playgroud)
我明白了
sudo port install meld
---> Activating shared-mime-info @0.60_0
Error: Target org.macports.activate returned: Image error: /opt/local/bin/update-mime-database already exists and does not belong to a registered port. Unable to activate port shared-mime-info.
Error: The following dependencies failed to build: py25-gnome gconf gtk2 shared-mime-info orbit2 libidl gnome-vfs desktop-file-utils gnome-mime-data libbonobo libbonoboui libglade2 libgnome esound audiofile libgnomecanvas libart_lgpl libgnomeui gnome-icon-theme hicolor-icon-theme icon-naming-utils p5-xml-simple p5-xml-namespacesupport p5-xml-sax gnome-keyring libtasn1 py25-gtk py25-cairo py25-numpy py25-nose py25-gobject py25-orbit
Error: Status 1 encountered …Run Code Online (Sandbox Code Playgroud) 我正在做一本书中的例子:Herbert Schildt撰写的完整参考文献C#3.0.它是关于使用参数在Console.WriteLine中编写的.这是一个例子:我试过这个但是我收到了一个错误:
Project1.exe has encountered a problem and needs to be close. We are sorry for the inconvenience. Please tell Microsoft about this problem. Send Error Report or Don't Send. And if I click, I get another error in the command prompt. "Unhandled Exception: System.Format.Exception input string was not in a correct format. at System.Text.StringBuilder.AppendFormatError() at System.Text.StringBuilder.AppendFormat(IFormatProvider provider,String Format, Object[]args) at System.IO.TextWriter.WriteLine(String format, Object arg0) at System.IO.TextWriter.SyncTextWriter.WriteLine(String format, Object arg0) At Example2.Main() in D:\myPath
我不确定这本书是否有错误或是我的代码?我很感激你的帮助.谢谢
指定格式的最简单方法之一是描述WriteLine()将使用的模板.为此,请显示所需格式的示例,使用#s标记数字位置.您还可以指定小数点和逗号.例如,这是一个更好的方式来显示10除以3:
Console.WriteLine("这里是10/3:{0:#.##}",10.0/3.0);
此语句的输出如下所示:这是10/3:3.33
顺便说一句,这是我的代码看起来像:
static …Run Code Online (Sandbox Code Playgroud) 好吧,我有一个非常简单的mysql数据库,但当我尝试通过mysql-admin运行此查询时,我得到奇怪的错误
INSERT INTO customreports(研究,类型,模式,选择,描述)VALUES('1','2','3','4','5');
错误:
1064 - 您的SQL语法出错; 查看与您的MySQL服务器版本对应的手册,以便在第1行使用"select,description"VALUES('1','2','3','4','5')附近的正确语法
我有这个代码:
set<int>::iterator new_end =
set_difference(set1.begin(), set1.end(),
set2.begin(), set2.end(),
set1.begin());
set1.erase(new_end, set1.end);
Run Code Online (Sandbox Code Playgroud)
它在视觉工作室中编译并运行良好.然而,在之前的一个问题中,人们说set应该是一个迭代器const.我没有在标准中看到类似的东西.有人可以告诉我它在哪里,或者这是明确定义的行为吗?
如果不是,请提供符合我需要的代码.有没有办法在不创建临时集的情况下执行此操作?
我正在寻找一种更优雅的方式来创建一个包含我从配置文件中读取的列表的哈希.这是我的代码:
read_config($config_file => my %config);
my $extension_list_reference = $config{extensions}{ext};
my @ext;
# Store each item of the list into an array
for my $i ( 0 .. (@$extension_list_reference - 1) ) {
$ext[$i] = $extension_list_reference->[$i];
}
# Create hash with the array elements as the keys
foreach my $entry (@ext) {
$extensions{$entry} = "include";
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
ECMAScript和JavaScript有什么区别?根据我的推断,ECMAScript是标准,JavaScript是实现.它是否正确?
我有一个安装了Ektron的Ektron客户端.他们希望添加功能以将密码更改为他们想要的内容.我是否需要关注ektron部分或者继续进行编辑?
有一个简单的方法吗?任何信息链接将不胜感激.
membership asp.net-membership ektron content-management-system
c# ×3
arrays ×1
c++ ×1
collections ×1
comparator ×1
directory ×1
ecma262 ×1
ektron ×1
hash ×1
installation ×1
iterator ×1
java ×1
javascript ×1
linq ×1
linq-to-xml ×1
macos ×1
macports ×1
meld ×1
membership ×1
mysql ×1
perl ×1
reference ×1
set ×1
sql ×1
stl ×1
string ×1
xml ×1