我是Java的新手.我编写了使用红黑树的代码:
TreeMap test = new TreeMap();
Map mainMap = new HashMap<>();
Map tempMap = new HashMap<>();
List<Integer> list = new ArrayList<>();
tempMap.put("Visa Credit Card",447747);
list.add(421323);
list.add(421630);
list.add(455451);
list.add(469375);
tempMap.put("Visa Debit card",list);
tempMap.put("Master Card Credit Card",523951);
tempMap.put("Master Debit Card",5399);
mainMap.put("ICCI",tempMap);
mainMap.put("Next",1234);
test.put("Values",mainMap);
System.out.println(mainMap);
Run Code Online (Sandbox Code Playgroud)
打印出以下内容:
{Next=1234, ICCI={Master Card Credit Card=523951, Visa Debit card=[421323, 421630, 455451, 469375], Master Debit Card=5399, Visa Credit Card=447747}}
Run Code Online (Sandbox Code Playgroud)
正如我所料.但是在这张地图中,我需要在地图中搜索一些值,比如说455451.如果这样做我应该输出为:
Visa Debit card, ICCI.
是否可以在地图上进行搜索?
提前致谢.
我正在尝试编写一个小的包装类,以使Gson库更加友好.不幸的是,当我试图按照我想要的方式进行此操作时,我遇到了编译错误.
这是我到目前为止的代码:
package com.test
import com.google.gson.{JsonObject, JsonElement}
import scala.collection.Iterator
import scala.collection.immutable.Map
case class GsonMap ( private val inner: JsonObject = new JsonObject )
extends Map[String, JsonElement] {
/** {@inheritDoc} */
override def iterator: Iterator[(String, JsonElement)]
= new Iterator[(String, JsonElement)] {
private val entries = inner.entrySet.iterator
override def hasNext: Boolean = entries.hasNext
override def next: (String, JsonElement) = {
val elem = entries.next
( elem.getKey, elem.getValue )
}
}
/**
* Returns a clone of the inner JsonObject
*/ …Run Code Online (Sandbox Code Playgroud) 所以我有这个任务,我给了一个"地图"
island = \
[' /---------\ ',
' | x \ ',
' / \--\ ',
' / x | ',
' | x | ',
' \ \ ',
' \ x /\/\ / ',
' \---/ \ | ',
' /--/ ']
Run Code Online (Sandbox Code Playgroud)
编写一个计算岛上宝藏数量的程序(x标记斑点)并创建一个坐标列表,例如[(1,11),...]((1,11)是顶部的实际位置在示例中珍惜)然后以形式打印出一份报告:有三件珍品.(1,11)有一个宝藏.有一个宝藏....提示:从第i行和第j列中的符号开始(非常短)表达式.
编写一个计算海岸线长度的程序.假设一'-'和'|'是1 mile和'\','/'是1.4 miles.(这只是一个非常粗略的估计,出于很多原因,其中一些是数学的).
我甚至不知道从哪里开始....任何人都可以帮助我,或者至少指出我在正确的方向?
我有两个单词char*,我想插入它们map<string,string>,因此我尝试了两种方法,但它们没有用 -
第一路 -
#include <iostream>
#include <string>
#include <map>
using namespace std;
void main()
{
map<string,string> myMap ;
char cWord[4] = "abc";
char cValue[4] = "123";
myMap.insert(cWord,cValue) ;
}
Run Code Online (Sandbox Code Playgroud)
我收到了一个错误 -
/usr/include/c++/4.4/bits/stl_tree.h: In member function ‘void std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_unique(_II, _II) [with _InputIterator = char*, _Key = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _Val = std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, _KeyOfValue = std::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > …Run Code Online (Sandbox Code Playgroud) 问题:
我试图找到地图的键和值的java类型,但不必迭代地图然后使用instanceof,即使地图是空的也想知道它.
上下文:
CKEditorConfig可以从这里下载(http://ckeditor.com/download)是使用地图实现的.但是你不能使用注入来设置这个地图,因为没有提供setter方法,并且没有提供构造函数来使用构造函数注入来设置它.但是,有五个addConfigValue方法(见下文),我可以使用它来添加这些值.
public void addConfigValue(final String key, final Number value);
public void addConfigValue(final String key, final String value);
public void addConfigValue(final String key, final Boolean value);
public void addConfigValue(final String key, final Map<String, ? extends Object> value);
public void addConfigValue(final String key, final List<? extends Object> value);
Run Code Online (Sandbox Code Playgroud)
我将在我的j2ee/java web应用程序中的几个地方使用ckeditor,所以我想我应该创建一个工厂类,它返回通过某个名称初始化编辑器所需的设置.但我想将这些配置外部化并在spring上下文文件中设置它们.因为我无法创建配置对象,所以我必须使用常规地图,然后使用地图构建配置对象.但我需要在构建对象之前验证来自spring的那些地图.
这是我构建配置对象的方法:
@SuppressWarnings("unchecked")
public CKEditorConfig buildConfigFromMap(Map<String, Object> configMap) {
CKEditorConfig config = new CKEditorConfig();
for (String key : configMap.keySet()) {
Object val = configMap.get(key);
if (val instanceof …Run Code Online (Sandbox Code Playgroud) 我有一个值列表:
[0,1.51,2.01,2.51,3.01,5.01,6.01,7.01,8.01,9.01,10.01]
第二个值列表:
[.15,.22,.3,.37,.4,.5,.6,.7,.8,.9,1]
我的程序的粗略逻辑是,如果某个变量的值落在第一个列表中的两个值之间,则将另一个变量的值设置为第二个列表中的相应项,即
if 0 < x < 1.51:
y = 0.15
elif 1.51 < x < 2.01:
y = .22
and so on
Run Code Online (Sandbox Code Playgroud)
显然我可以扩展if/elif/else流程以涵盖每个案例,但(i)这不是很好,(ii)它不可持续(iii)我希望能够将此应用于任何两个列表,而不是要求知道其中包含的任何值.
在Python中实现这一目标的最佳方法是什么?
非常感谢
我该如何转换这个数组:
@list = ["one", "two", "three", "four"]
Run Code Online (Sandbox Code Playgroud)
使用前面的键进入这样的新数组:
@new_list = ["1. one", "2. two", "3. three", "4. four"]
Run Code Online (Sandbox Code Playgroud)
使用each和injectRuby的?
我正在制作一个跟踪用户的应用程序.我注意到当应用程序进入后台时,然后当你打开应用程序时,它会向用户显示错误的当前位置,直到大约5秒钟.有没有解决这个问题,因为5秒的延迟会破坏跟踪结果(它会毫无理由地增加三英里).
编辑:问题实际上不是"错误".我必须在我的Info.plist中设置我想要后台处理和繁荣的应用程序跟踪是超级准确的.一个小教程:
#include "UserUserSim.h"
UserUserSim::UserUserSim(string &query_url):
_query_url(query_url)
{
}
void UserUserSim::calculate(){
ifstream infile(_query_url.c_str());
string line;
while(infile){
int movie_id;
int user_id;
infile>>line;
if (line[line.length()-1]==':'){
movie_id=atoi(line.c_str());
cout<<line<<endl;
}
else{
user_id=atoi(line.c_str());
if (_set.find(user_id)==_set.end())
getTop(user_id);
float score=getScore(user_id,movie_id);
cout<<score<<endl;
}
}
}
float UserUserSim::getScore(int &user_id, int &movie_id){
vector<USim>* p=_map[user_id];
MovieList* ml=MovieDictionary::getInstance().getMovie(movie_id);
ml->sortList();
vector<UserScore>::iterator it;
vector<USim>::iterator sim_it=p->begin();
float score=0;
float total_weight=0;
for (it=ml->begin();it<ml->end();it++){
while ((*it).user_id>(*sim_it).user_id){ // the user did not rate in ths movie
sim_it++;
}
if ((*it).user_id==(*sim_it).user_id){
score+=(*sim_it).score * (*it).rating; // score of similarity * rating
total_weight+=(*sim_it).score; …Run Code Online (Sandbox Code Playgroud) 我已经定义了我的类SumClass并尝试在地图中使用它,如下面的代码所示.我已经定义了所需的<,=和==运算符.
#include <iostream>
#include <vector>
#include <map>
using namespace std;
class SumClass {
public:
int id;
int sum;
SumClass() { id = sum = 0;}
bool operator<(const SumClass& rhs) const{
if( (id < rhs.id) && (sum< rhs.sum)) return true;
else return false;
}
bool operator==(const SumClass& rhs) const{
//if(this == &rhs) return true;
if( (id == rhs.id) && (sum == rhs.sum) ) return true;
else return false;
}
void set(int idd, int summ) { …Run Code Online (Sandbox Code Playgroud)