标签: arraylist

如何使用同一个对象初始化 ArrayList x 次?

有没有办法用X个相同的对象快速初始化一个新的ArrayList对象?

这是一个示例代码:

private List<String> initStringArrayList(int size, String s) {
  List<String> list = new ArrayList<>(size);
  while (size-- > 0) {
    list.add(s);
  }
  return list;
}
Run Code Online (Sandbox Code Playgroud)

我想要得到相同的结果,但对于大的“大小”值来说要快得多。

当然,我可以使用这段代码:

private List<String> initStringArrayList(int size, String s) {
  String[] array = new String[size];
  Arrays.fill(array, s);
  return new ArrayList<>(Arrays.asList(array));
}
Run Code Online (Sandbox Code Playgroud)

但是 ArrayList<>() 的构造函数会复制整个数组,而不是在内部使用它。这是不可接受的。

还有其他方法吗?我需要一个 ArrayList 作为结果,而不仅仅是一个列表。它应该是任何类型,而不仅仅是字符串。

谢谢您的任何答复!

java allocation initialization arraylist

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

我想显示来自 React 的数组列表,但当我认为我做的一切都正确时它没有显示?

我想显示来自 React 的数组列表,但当我认为我做的一切都正确时它没有显示?请问我哪里错了

下面是代码

import { useState } from 'react';

function App() {
   
  const [items , setItems] = useState([{
       id:1,
       text:'simple 1'
  },
  {
    id:1,
       text:'simple 2'
  },
  {
    id:1,
    text:'simple 3'
  },

])

  return (
    <div className="App">
    
    {items.map((item) => (
      <h1>{items.text}</h1>
    ))}


     <h1>Hello from React js</h1>
    </div>
  );
}

export default App;
Run Code Online (Sandbox Code Playgroud)

arrays arraylist reactjs react-hooks

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

Java 中 ArrayList&lt;byte[]&gt; 到 byte[][]?

我有一个返回 ArrayList<byte[]> 的方法,现在我想知道是否有办法可以将其转换为 byte[][]。我见过很多关于 ArrayList<byte> 的问题,但没有看到关于 ArrayList<byte[]> 的问题。我能以某种方式做到这一点吗?

ArrayList<byte[]> list = new ArrayList<>()
Run Code Online (Sandbox Code Playgroud)

到

byte [][] b
Run Code Online (Sandbox Code Playgroud)

java arraylist

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

ArrayList 上的 isEmpty() 结果为 false,尽管其大小为 0

在测试中,我向另一个类注入了一个模拟,该类似乎工作正常。但是,当我检查 ArrayList 是否为空时,尽管其长度/大小为 0,结果却为 false。这种情况怎么会发生以及如何解决这个问题?

@Slf4j
@Configuration
@RequiredArgsConstructor
@Setter(onMethod_ = @SuppressFBWarnings({"EI_EXPOSE_REP2", "EI_EXPOSE_REP"}))
@Getter(onMethod_ = @SuppressFBWarnings({"EI_EXPOSE_REP2", "EI_EXPOSE_REP"}))
@EnableConfigurationProperties(MyProperties.class)
public class MyConfig {

    private final MyProperties myProperties;

    private final GenericApplicationContext applicationContext;

    @PostConstruct
    void init() {
        Objects.requireNonNull(myProperties, "myProperties needs not to be null.");
        if (/*myProperties.getApps().size() == 0 || */myProperties.getApps().isEmpty()) {
            log.info("bla bla bla");
        } else {
            ...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的测试课:

@ExtendWith(MockitoExtension.class)
class MyConfigTest {

    @Mock
    MyProperties myPropertiesMock;

    @InjectMocks
    MyConfig myConfig;

    ApplicationContextRunner contextRunner;

    @Test
    void should_check_for_empty_apps() {
        contextRunner = new ApplicationContextRunner()
            .withPropertyValues("foobar.apps[0].name=", "foobar.apps[0].baseUrl=", …
Run Code Online (Sandbox Code Playgroud)

java arraylist is-empty

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

如何在java中返回具有特定字符的数组列表

我想从没有 char 'a' 作为最后一个字母的数组列表中返回一个名称列表,我尝试为其创建一个循环并找到每个名称的最后一个字母。

List<String> names = new ArrayList<>();
    names.addAll(Arrays.asList("Tomek", "Ania", "Krzys", "Tomek"));
   String last = names.get(names.size());
    int lastLetter = last.length() - 1;
    for (String word : names) {
        if (lastLetter != 'a' ) {
            System.out.println(names);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

输出

["Tomek", "Krzys","Tomek"]
Run Code Online (Sandbox Code Playgroud)

java arraylist

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

如何优化Java中的函数以使其更快?

public static ArrayList<Integer> duplicates(int[] arr) {
    ArrayList<Integer> doubles = new ArrayList<Integer>();
    boolean isEmpty = true;
    for(int i = 0; i<arr.length; i++) {
        for (int j = i+1; j< arr.length; j++) {
            if( arr[i] == arr[j] && !doubles.contains(arr[i]) ){
                doubles.add(arr[i]);
                isEmpty = false;
                break;
            }
        }
    }
    if(isEmpty) doubles.add(-1);
    Collections.sort(doubles);
    return doubles;
}

public static void main(String[] args) {
    System.out.println( ( duplicates( new int[]{1,2,3,4,4,4}  ) ) ); // Return: [4]
}
Run Code Online (Sandbox Code Playgroud)

我用 Java 创建了这个函数,它返回输入 int 数组的倍数,如果输入数组为空或没有倍数,则返回 -1。

它有效,但可能有一种方法可以让它更快。是否有任何好的做法可以使函数总体上更高效、更快?

java arrays arraylist

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

如何有效地将 Set 转换为数组?

因此,我尝试生成一个充满唯一随机整数的数组,我发现使用数组列表执行此操作将是最有效的方法。

public static int [] randArr(int n, int max){
       randArr = new int[n];
       Random rn = new Random();
       Set<Integer> test = new HashSet<Integer>();
       
      while(test.size() < n){
      test.add(rn.nextInt(0, max));
 
        }
}
Run Code Online (Sandbox Code Playgroud)

现在我尝试使用,randArr = test.toArray()但我不太确定括号里应该放什么,也不确定这是否真的可行。是否还有其他转换方法,因为我也不能简单地通过test.get(i)for 循环将 test 的整数分配给 randArr 。

java arrays arraylist set

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

向 ArrayList 添加新项目不起作用

我需要创建一个简单的购物车,从 url 获取数据并将其存储在列表中,然后存储到会话中。如果商品不在购物车中,则会将其添加到列表中。如果它已经在购物车中,我会将值加一。

到目前为止,这是我的代码,但它没有向购物车添加任何商品。

String pid = request.getParameter("id");
String price = request.getParameter("price");
HttpSession s = request.getSession();
ArrayList<CartItem> cart = (ArrayList<CartItem>) s.getAttribute("cart");

if(cart == null){
    cart = new ArrayList<>();
}
    
for (CartItem item : cart) {
    if (item.getId().equals(pid)) {
        int count = item.getCount();
        item.setCount(count + 1);
    } else {
        cart.add(new CartItem(pid, 1, price));
    }
}
    
s.setAttribute("cart", cart);
Run Code Online (Sandbox Code Playgroud)

java arraylist

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

List.sort 有两个字段

我在leetcode讨论部分看到了这段代码,但我无法理解它。请在这里帮忙。

HashMap<Character,Integer> map = new HashMap<>();
    for(char ch: s.toCharArray()){
        map.put(ch,map.getOrDefault(ch,0)+1);
    }
    List<Character> list = new ArrayList<>(map.keySet());//convert hashmap keys into list
    list.sort((x,y) -> map.get(y) - map.get(x));
Run Code Online (Sandbox Code Playgroud)

我无法理解下面一行的含义。

list.sort((x,y) -> map.get(y) - map.get(x));

java lambda arraylist

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

ArrayList 大小作为变量

为什么我不能将 ArrayList 大小保存为变量?

public static ArrayList <Integer > merge(ArrayList <Integer > list1,
                                          ArrayList <Integer > list2 ) {

    if (list1.size() >= list2.size()) {
        int maxSize = list1.size(); 
    } else {
        int maxSize = list2.size();
    }

    for (int i = 0; i < maxSize; i++) {

        if (i <= list2.size()) {
            int nextInList2 = list2.get(i);
            list1.add(i, nextInList2);
        }
    }
    System.out.println(list1);
    return (list1);
Run Code Online (Sandbox Code Playgroud)

in: int maxSize = list1.size(); 我认为它没有按照我想要的方式保存变量。

我假设

list1.size()
Run Code Online (Sandbox Code Playgroud)

是一个整数

java arraylist

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