小编Man*_*hah的帖子

从java中的集合中删除重复元素

我有一组字符串数组,我想从这里删除重复的元素...

    String[] arr1 = {"a1","b1"};
    String[] arr2 = {"a2","b2"};
    Set<String[]> mySet = new HashSet<String[]>();
    mySet.add(arr1);
    mySet.add(arr2);
    mySet.add(new String[] {"a1","b1"});
    System.out.print(mySet.size());
Run Code Online (Sandbox Code Playgroud)

目前mySet看起来像这样:

[{"a1","b1"},{"a2","b2"},{"a1","b1"}]
Run Code Online (Sandbox Code Playgroud)

但我想这样:

[{"a1","b1"},{"a2","b2"}]
Run Code Online (Sandbox Code Playgroud)

我知道一些方法......

  1. 每次我需要运行内部循环并检查它是否重复.
  2. 我可以覆盖该集的行为吗?(哈希码或等号)?( 我不知道怎么....)
  3. 我需要为此更改数据结构吗?(linkedhashset或list或任何其他合适的数据结构?)

java set

10
推荐指数
2
解决办法
3万
查看次数

JPA+Hibernate...关联不是单个查询,而是执行多个查询进行连接

我有两个名为 Banners 和 BannerGroup 的类。

\n\n

我已经创建了双向关系。\n就我而言,一个 BannerGroup 可以有许多横幅,并且许多横幅属于同一个 BannerGroup。

\n\n

Mysql 表是...

\n\n
mysql> desc Banners;\n+------------------+--------------+------+-----+---------+-----------------------------+\n| Field            | Type         | Null | Key | Default | Extra                       |\n+------------------+--------------+------+-----+---------+-----------------------------+\n| banner_id        | int(11)      | NO   | PRI | NULL    | auto_increment              | \n| banner_name      | varchar(255) | YES  |     | NULL    |                             | \n| banner_group_id  | int(11)      | YES  | MUL | NULL    |                             | \n+------------------+--------------+------+-----+---------+-----------------------------+\n\nmysql> desc Banner_Group;\n+---------------------+--------------+------+-----+----------------+-----------------------------+\n| Field               | Type         | Null | Key | Default        | Extra                       |\n+---------------------+--------------+------+-----+----------------+-----------------------------+\n| group_id …
Run Code Online (Sandbox Code Playgroud)

mysql hibernate jpa

6
推荐指数
1
解决办法
6101
查看次数

如何在休眠时检查会话是否已经打开了事务?

我的要求是我想执行数据库操作.所以,我在做......

Public boolean myFunction(){
    Session session = sessionFactory.getCurrentSession();
    if(session!=null){
        if (tx != null) {
            Transaction tx = session.beginTransaction();
            //Perform database operation...
            tx.rollback();
            if (session.isOpen()) {
            session.close();
            }
            tx = null;
            session = null;
        }
    }else{
        return;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我的会话不包含任何先前未提及/展开的tranasction时,这很有效.

现在,问题Sceanario就在这里......

Sceanario:

有一个服务...调用myFunction(),该服务在会话中已有一个活动事务.

问题:当myfunction()执行tx.rollback()时...它还回滚了父进程的事务.

1.) Why this happen???
2.) Is there nay way to determine... weather hibernate session contains any previous open/uncommited/active/unrolledback/continue transaction?
Run Code Online (Sandbox Code Playgroud)

我试过了...

Public boolean myFunction(){
    Session session = sessionFactory.getCurrentSession();
    if(session!=null){
        if (tx != null) {
            boolean isAlreadyTransactionStarted = sessionFactory.getCurrentSession().getTransaction().isActive(); …
Run Code Online (Sandbox Code Playgroud)

session struts hibernate transactions

5
推荐指数
1
解决办法
7483
查看次数

Method调用低效的新Integer(int)构造函数; 请改用Integer.valueOf(int)

我的目标是优化我的应用程序代码.我的代码看起来像这样:

int a = 10;
Map<String , Integer> myMap = new TreeMap<>();

myMap.put("first" , new Integer(a)); //[FindBugs] Method com.abc.xyz.Test.main(String[]) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead 
Run Code Online (Sandbox Code Playgroud)

当我在Netbeans中使用Findbugs进行静态分析时,它表明存在类似" 方法调用低效的新Integer(int)构造函数的警告/错误;使用Integer.valueOf(int) ".

我知道新的Integer(int)Integer.valueOf(int)之间的区别.

一个创建另一个对象而另一个不创建.还有一个不缓存和其他缓存.

所以我修改了我的代码......

m.put("first" , Integer.valueOf(a)); // Unnecessary boxing to Integer
Run Code Online (Sandbox Code Playgroud)

但同样也给出警告" 不必要的拳击到整数 "(编辑不是由findbugs).

所以,我已经像这样改变了......

m.put("first" , a); //No warning at all...
Run Code Online (Sandbox Code Playgroud)

最后没有任何警告.

我的问题:

1.)此链接建议在内部(通过编译器) m.put("first",a); 正在转换为 m.put("first",Integer.valueOf(a));

(在那个例子中,有一个List-ArrayList,这里我们有Map-TreeMap ... FYI).然后为什么编辑发出警告?我该怎么办?什么是优化方式?

2.)如果没有Map,如果有像HashTable这样的数据结构那么???

3.)为什么编辑器给整数提供不必要的拳击 …

java autoboxing findbugs

5
推荐指数
1
解决办法
3207
查看次数

如何删除一行到特定字符模式的单词...正则表达式

我想要从文件中的一行"测试"单词之后的单词.意思是在实际上,我不希望在"测试"字之前出现这些词.

这就是模式......

例如:

输入:

***This is a*** test page.

***My*** test work of test is complete.
Run Code Online (Sandbox Code Playgroud)

输出:

test page.

work of test is complete.
Run Code Online (Sandbox Code Playgroud)

regex bash sed

1
推荐指数
2
解决办法
3万
查看次数

替换两个角色之间的一切

所有.

我是sed的新手.

我想要类似的东西

输入:

ABC,DEF,GHI,JKL,MNO
Run Code Online (Sandbox Code Playgroud)

输出:

ABC,,,,MNO
Run Code Online (Sandbox Code Playgroud)

手段....

I want to remove all contents between two ','
Run Code Online (Sandbox Code Playgroud)

bash awk sed

1
推荐指数
1
解决办法
99
查看次数

标签 统计

bash ×2

hibernate ×2

java ×2

sed ×2

autoboxing ×1

awk ×1

findbugs ×1

jpa ×1

mysql ×1

regex ×1

session ×1

set ×1

struts ×1

transactions ×1