草庐IT

map长度

全部标签

java - Apache Avro : map uses CharSequence as key

我正在使用ApacheAvro.我的模式有map类型:{"name":"MyData","type":{"type":"map","values":{"type":"record","name":"Person","fields":[{"name":"name","type":"string"},{"name":"age","type":"int"},]}}}编译模式后,生成的Java类使用CharSequence作为MapMyData的key。使用Map中的CharSequence作为key很不方便,有没有办法为Map生成String类型的key在ApacheAvro?附言问题是,例

java - JAVA中不同长度的XOR Hex String

我有两个字符串Strings1="426F62";Strings2="457665";字符串以十六进制表示。我想对它们进行异或。通常逐个字符进行异或运算会为除FXOR6之外的其他人提供正确的结果。(它给出112,答案应该是9)请告诉我在JAVA中的正确实现方式编辑:转换为int和xoring有效。但是当两个字符串的长度不同时如何异或。 最佳答案 与其对Unicode表示进行异或运算,只需将每个字符转换为它所代表的十六进制数字,对这些进行异或运算,然后再将其转换回十六进制。你仍然可以一次做一个字符:publicStringxorHex

java - 获取 int 中使用的位长度

如果你有二进制数10110,我怎样才能让它返回11111?例如,将第一个1之后的所有位设置为1的新二进制数,下面列出了一些类似的示例:101应该返回111(3位长度)011应返回11(2位长度)11100应返回11111(5位长度)101010101应该返回111111111(9位长度)在Java中如何获得最简单的方法?我可以想出一些方法,但它们不是很“漂亮”。 最佳答案 我的尝试:Integer.highestOneBit(b)*2-1 关于java-获取int中使用的位长度,我们在S

java - 检查 map 的空值

我得到map作为结果,当我得到值时,我需要将它转换为String,如下所示:a.setA(map.get("A").toString());但如果它返回null而不是抛出nullPointerException,所以我将其更改为以下内容:a.setA(map.get("A")!=null?map.get("A").toString():"");但是有20多个字段,我正在做同样的事情,所以我只想像下面那样做:Stringval="";a.setA(val=map.get("A")!=null?val.toString():"");但它一直返回空白,我有一个简单的问题是我不能像这样使用变量

java - 添加什么 Jersey 依赖项以避免 jersey.repackaged.com.google.common.collect.Maps 的 NoClassDefFoundError

我正在尝试运行一个扩展JerseyTest的测试,但是在运行它时我得到了一个:java.lang.NoClassDefFoundError:jersey/repackaged/com/google/common/collect/Maps知道我缺少什么依赖项吗?我在我的pom.xml中包含了以下Jersey工件,jersey.version是2.5.1:org.glassfish.jersey.containersjersey-container-servlet${jersey.version}org.glassfish.jersey.corejersey-client${jersey.

java - 多个线程迭代同一个 map

我最近在用Java编写并发程序时遇到了以下困境:假设您有一个全局数据结构,它是常规非同步、非并发库(例如HashMap)的一部分。是否可以允许多个线程在不同的交错周期遍历集合(仅读取,无修改),即当线程2在同一映射上获取他的迭代器时,线程1可能正在迭代一半? 最佳答案 没关系。能够做到这一点是创建迭代器这样的接口(interface)的原因。每个迭代集合的线程都有自己的迭代器实例来保存它的状态(例如,你现在在迭代过程中的位置)。这允许多个线程同时迭代同一个集合。 关于java-多个线程迭

java - 使用 Java 8 流来转换具有空值的 Map

我正在处理一个Map有null键和/或值中的条目:Mapheaders=newHashMap();headers.put("SomE","GreETing");headers.put("HELLO",null);headers.put(null,"WOrLd");headers.keySet().stream().forEach(k->System.out.println(k+"=>"+copy.get(k)));我得到以下输出:SomE=>GreETingHELLO=>nullnull=>WOrLd我需要转换map,所以所有非空值都转换为小写,如下所示:some=>greetingh

java - 响应输出流内容长度?

我正在通过各种方法写入输出流。在关闭它之前,如何找出输出流的内容长度? 最佳答案 最简单的方法可能是将其包装在另一个OutputStream实现中,该实现转发所有写请求,但保留一个内部计数器。然后你就写信给那个。实现起来应该不会太难-实际上可能已经有了。编辑:只是猜测一个合理的名称(CountingOutputStream)在ApacheCommonsIO中提出了一个实现.编辑:如其他地方所述,如果这是针对HTTP并且您的客户端尚未对完整数据进行缓冲(在这种情况下,我认为它可以计算出内容长度),您可能会遇到问题,因为需要在写入数据之

java - 使用比较器对字符串长度进行排序

在尝试根据元素字符串长度对数组进行排序时,我遇到了编译错误。我有一套开始,,Setarraycat=newHashSet();//addcontentstoarraycatString[]array=arraycat.toArray(newString[0]);//arraylookslikethisnow://array=[cat,cataaaa,cataa,cata,cataaa]理想情况下,我希望排序为array=[cat,cata,cataa,cataaa,cataaaa]所以我有一个类型的比较器classcompimplementsComparator{publicintco

java - 在 map 中添加相同的键两次

我在研究Map时发现,如果我故意添加相同的键两次,那么Map的大小将保持不变。这背后的技术原因是什么?Mapmap=newHashMap();//HashMapkeyrandomorder.map.put("Amit","Java");map.put("Amit","Java");检索代码...System.out.println("Thereare"+map.size()+"elementsinthemap.");System.out.println("ContentofMapare...");Sets=map.entrySet();Iteratoritr=s.iterator();